# CloudFiles Help Docs — full content > The complete Markdown text of every CloudFiles help doc (Salesforce, HubSpot, and the API), grouped into the same sections as `/llms.txt` and concatenated for machine/agent consumption. See `/llms.txt` for a short linked index instead. --- ## Getting Started --- # Quick Starts (Quick Start · Salesforce) https://help.cloudfiles.io/salesforce/quick-starts # Quick Starts Looking to get started with the CloudFiles app? This document offers a comprehensive collection of articles, including an installation guide and three quick start guides, to help users seamlessly integrate CloudFiles with their Salesforce org. > Kind: Quick start · Updated: Jul 4, 2026 This category consists of articles that can help you get started with the CloudFiles app very easily. Simply install the app using the installation guide linked below, and then use the 3 quick starts to become an expert with the integration. - Installation guide - In this article we cover the 3 steps required to setup the CloudFiles - Salesforce integration. We also provide a list of 3 quick start guides at the end that can be used by an admin or architect to setup basic file and folder functions in their Salesforce objects quickly. - Connect external folder to a record - In this article, we will cover about connecting external folder to a record using CloudFiles widget. Once inserted, the user can go to the respective object & link the widget to a folder sitting in any external storage. Once linked, users can see the contents of the folder and perform various operations. - Access, share and track a file - In this article, we show you how to connect your files, configure a link and see analytics on that link all within Salesforce. - Share files in experience cloud (community)- In this article, we have covered a common file sharing use-case for businesses using the Salesforce experience cloud. - Document Generation with CloudFiles - In this quick start guide, you will learn how to integrate Salesforce data into your document workflow using the CloudFiles Word add-in and CloudFiles Doc Gen LWC. You will discover how to install the CloudFiles Word add-in, create and publish personalized templates, and manually generate documents in your desired format. Additionally, this guide covers automating the document generation process based on specific triggers and attaching the generated documents to Salesforce records. --- # Installation guide https://help.cloudfiles.io/salesforce/installation-guide-for-cloudfiles-salesforce-integration # Installation guide Learn how to seamlessly integrate CloudFiles with Salesforce in just three simple steps. Install CloudFiles from the Salesforce AppExchange, set up permission sets for various user roles, and connect your CloudFiles account. > Kind: Quick start · Updated: Jul 1, 2026 In this article we cover the three steps required to setup the CloudFiles - Salesforce integration. We also provide a list of three quick start guides at the end that can be used by an admin or architect to setup basic file and folder functions in their Salesforce objects quickly. ## Step 1 - Install from AppExchange Follow the steps below to install CloudFiles in your Salesforce account. The same steps are applicable for both production and sandbox - 1. **Log into Salesforce as a Salesforce Admin** — 2. **Go to the CloudFiles listing on the Salesforce App Exchange, and click on Get It Now** — 3. **Follow the prompts to install either in production or in a sandbox** — 4. **At separate points during the installation, the installer prompts you to** — Choose who to install CloudFiles for - Select "Install for Admins Only". Don't worry, all your users will be able to access CloudFiles. We select this option to better control the permissions for all usersApprove Third-Party Access - Accept third party access request. You can read about this in our FAQ on Why are various third party accesses asked during installation.Click Next or Continue in other screens to complete the installation. ![](https://media.help.cloudfiles.io/qs-install-guide/01.png) ## Step 2 - Setup CloudFiles Account You can setup the CloudFiles app from within Salesforce by first going to the CloudFiles App Launcher. Click on the 9 dots icon(App Launcher) on top left of salesforce and search 'CloudFiles'. Then select the CloudFiles app. ![](https://media.help.cloudfiles.io/qs-install-guide/02.png) This will open the CloudFiles App Launcher. Click on the Setup Tab on top and then click on Setup CloudFiles button. Follow the on-screen instructions as shown below. ![](https://media.help.cloudfiles.io/qs-install-guide/03.gif) That's all the setup we need to get started. You can now start setting up flows and widgets to streamline your file management and sharing in Salesforce. Check the next section to know how to get started quickly. ## Step 3 - Connect Automation User Automation user (or system user, service user) is a user credential (e.g. a google drive user or a sharepoint user) that you connect on the library settings page. This is used as the backend user for any automation operations such as creating a folder in an external storage. To connect this user, in the “Document Management” tab configure the libraries you wish to connect with CloudFiles. You can follow these steps for the same: 1. **Go to the “Document Management” tab within CloudFiles** — 2. **From the side bar navigate to "Libraries" Page** — 3. **Click on the “+” icon against the external storages you wish to connect** — Once selected, click “Save”. 4. **Navigate to the respective Library's tab and connect a System User account** — This account will be used for account-level automations. So it’s better to connect an account which has all the permissions and acts as an admin account. 5. **You can leave the “Conflict Behaviour” settings as they are, these can be set later** — Refer to the below GIF to have a visual understanding of this step - ![](https://media.help.cloudfiles.io/qs-install-guide/04.gif) ## Step 4 - Connect Content Library User This user is a personal account used by individual users to access the respective cloud storage everyday (e.g. employees' google drive account or sharepoint account). This user can be connected either form the CloudFiles widget on records or from the content library tab as shown in the steps below - 1. **Go to the “Content Library” tab within CloudFiles** — 2. **Select the connected library from the dropdown menu** — 3. **Connect a User Account** — This account will be used to access the library within Salesforce and retrieve metadata values for files & folders for flow actions and apex. For implementation purposes, it's recommended to connect to the same account set up as the “System User”. Refer to the below GIF to have a visual understanding of this step - ![](https://media.help.cloudfiles.io/qs-install-guide/05.gif) > **Note** — Note - If you're on a paid plan, reach out to the CloudFiles support team for further assistance, at - support@cloudfiles.io ## Getting started guides To get started quickly, we provide 3 quick start guides that talk about incrementally advanced features. Refer to these guides in sequence to become a Salesforce - CloudFiles integration expert. 1. **Connect external folder to a record** — Talks about accessing external storage from Salesforce objects. Also talks about automation capabilities. 2. **Access, share and track a file** — Talks about file and folder sharing by creating a link, configuring it's settings and viewing it's analytics all from the Salesforce objects. Also talks about automation capabilities. 3. **Share files in experience cloud (community)** — Sharing files with community and partner users using experience cloud and receiving files from them to collaborate is a common use-case. This article gives a basic overview and also talks about automation capabilities. Once you are done with these, check the list of categories and articles in the left sidebar for all features and use cases. --- # Connect external folder to a record https://help.cloudfiles.io/salesforce/quick-start-to-connect-external-folder-to-salesforce-object # Connect external folder to a record Learn how to set up and use the CloudFiles widget, a lightning web component for Salesforce that links folders from cloud storage platforms to Salesforce records. > Kind: Quick start · Updated: Jul 4, 2026 CloudFiles widget is a lightning web component that be dragged and dropped onto any Salesforce standard or custom object. Once inserted, the user can go to the respective object and link the widget to a folder sitting in SharePoint / Google Drive / OneDrive / Box / Dropbox or even AWS S3. Once linked, users can see the contents of the folder, search, preview, edit, download, share files and do a lot more. Users can also upload files directly in Salesforce which get stored in the external storage. CloudFiles also supports linking multiple folders or files to a Salesforce record Further, CloudFiles provides flow actions that can automate the resource(folder or file) creation and linking process, thus providing an extra layer of automation on top. This article explains the following - - Setting up the widget- This section provides steps and screenshots to drag and drop the widget onto any Salesforce standard or custom object. - Linking the widget to folder - This section shows how to link a folder to an object's widget. This can be done manually or automatically using flow actions. - Working with linked folders- This section shows the usability of the linked folder such as upload, search, preview, edit, share and other operations right from the Salesforce record. - Folder linking automation- This section covers the flow component used to automate the folder / file linking operation. - Unlinking the folder This section shows how to disconnect a linked folder or file from the widget. Keep scrolling for more info. ## 1 - Setting up the widget You can drag and drop the folder widget onto any standard or custom Salesforce object. Simply go to the 'Edit Page' from the object page, add a new tab to your object and drag and drop the widget. These steps are shown in the video below. [Watch video](https://www.youtube.com/watch?v=wqiRTrBNguc) > "CloudFiles Connected Folder" widget has been replaced by the more generic "CloudFiles" widget. ## 2 - Linking the widget to the folder Now that your widget is setup, you can start linking files or folders with your Salesforce objects. Just click the "Select folder/file" button in the widget, select the folder from any cloud storage (e.g. SharePoint, Google Drive, Box, Dropbox, AWS S3, OneDrive) and that's it. Follow the simple steps below - - Go to the Salesforce record where you want to link the folder - Locate the CloudFiles widget that you had added in the previous step - Click on the "Select folder/file" button (See note below if you instead see the "Connect CloudFiles" button here) - A dialog will open where you can select your library / folder / file that you want to link - Select the folder or file. The contents will immediately start showing up in your widget > **Note** — If you see the "Connect CloudFiles" button instead of the "Select folder/file" button on the widget, this is because you recently installed the Salesforce app and haven't connected it to the CloudFiles account yet. Simply click the Connect button and follow on-screen instruction. Screenshots for this are shown in Step 2 here. Here's a video that shows this in action. You can also connect multiple folders and files in this widget. [Watch video](https://www.youtube.com/watch?v=gL_Jd8oe9Vw) ## 3 - Working with linked folders The connected folders are pretty easy and intuitive to use. You can upload files and create folders, search inside this folder and sub-folders, do actions such as edit in cloud drive, download, preview etc... on the files & folders. Explore the buttons all around the widget to know more. ![](https://media.help.cloudfiles.io/qs-connect-external-folder-to-a-record-sf/01.jpg) ## 4 - Folder linking automation In this section, we cover a small flow template that enables you to automatically link folders from external storage onto Salesforce pages. This flow template is available as part of the managed package and can be cloned and updated as per your business needs. Before setting up the automations, please connect your automation user by following the article on Automations For the sake of simplicity, we created a simple flow that creates a folder in SharePoint whenever an contact is created, and then links it to the folder widget of that contact. - Create a record triggered flow. - Set trigger conditions of new contact creation - Use asynchronous path to add CloudFiles actions. You can also clone the Create & Attach Folder Flow template that comes pre-packaged with the app. - Add CloudFiles folder creation action and configure parameters - Add CloudFiles folder linking action and configure parameters - Save and test your flow The video below shows our final flow along with the parameters we used. You can check the details on how to configure these paramters in our article on Create Folder and Create Attachment . [Watch video](https://www.youtube.com/watch?v=fy_xZrQwfpg) You can easily get the various IDs associated to this action using the simple steps below. - Click on App Launcher on top left. Search for the CloudFiles App. - In the CloudFiles App, select the Content Library Tab - Go to your cloud storage. You may need to login if you haven't done so before. - Go to the target folder where you would like to place the created folders in. - Click on View Metadata option from the folder list item dropdown as shown below. - A dialog box opens up which shows all the IDs and other meta data required for automations. These steps are shown in the GIF below - ![](https://media.help.cloudfiles.io/qs-connect-external-folder-to-a-record-sf/02.gif) ## 5 - Unlinking the folder To unlink the folder or file, either go to widget home or inside the connected folder and click on the Disconnect button as shown in the image below. ![](https://media.help.cloudfiles.io/qs-connect-external-folder-to-a-record-sf/03.png) ## More resources on CloudFiles - Salesforce Integration There's a plethora of articles and videos that you can refer to for more information on using CloudFiles with Salesforce. The app offers a number of Lightning web components, flow actions and other flow components, custom objects and apex support which makes document automations and sharing easy. You can not only do auto-folder creation and connection as shown above, but you can also share these files with community as well as external users. You can enable security & collect analytics on the files. With the help of flow components, processed can be completely automated. This article links to various sections of the knowledge base that cover these components and use-cases in Salesforce. --- # Access, share and track a file https://help.cloudfiles.io/salesforce/quick-start-to-access-share-and-track-a-file-in-salesforce # Access, share and track a file Learn how to easily connect files, configure links, and track analytics in Salesforce with the CloudFiles app. > Kind: Quick start · Updated: Jul 4, 2026 In this quick start, we show you how to connect your files, configure a link and see analytics on that link all within Salesforce. If you haven't already, follow this Installation guide to set up the CloudFiles app from the Salesforce AppExchange. Once you have CloudFiles installed in your Salesforce objects, refer to the 5 steps below. ## 1. Access CloudFiles' LWC You can drag and drop the CloudFiles widget onto any standard or custom Salesforce object. Simply go to the 'Edit Page' from the object page, add a new tab to your object and drag and drop the widget - [Watch video](https://www.youtube.com/watch?v=wqiRTrBNguc) ## 2. Attach a folder Now that your widget is setup, you can start linking files or folders with your Salesforce objects. Just click the "Select folder/file" button in the widget, select the folder from any cloud storage (e.g. SharePoint, Google Drive, Box, Dropbox, AWS S3, OneDrive) and that's it. Follow the simple steps below - - Go to the Salesforce record where you want to link the folder - Locate the CloudFiles widget that you had added in the previous step - Click on the "Select folder/file" button (See note below if you instead see the "Connect CloudFiles" button here) - A dialog will open where you can select your library / folder / file that you want to link - Select the folder or file. The contents will immediately start showing up in your widget NOTE: If you see the "Connect CloudFiles" button instead of the "Select folder/file" button on the widget, this is because you recently installed the Salesforce app and haven't connected it to the CloudFiles account yet. Simply click the Connect button and follow on-screen instruction. Screenshots for this are shown in Step 2 here. Here's a video that shows this in action. You can also connect multiple folders and files in this widget. [Watch video](https://www.youtube.com/watch?v=gL_Jd8oe9Vw) If you haven't already done so, check out our article on Connect external folder to a record which talks about this in detail. ## 3. Create Sharing Link Once the file / folder has been attached, you can use the options dropdown on the right side of the tile in the widget. Click on the attachment dropdown and choose the Share option. This is shown in the graphic below. ![](https://media.help.cloudfiles.io/qs-access-share-and-track-a-file-sf/01.png) ## 4. Configure Link You can set a number of security & analytics settings on this link. You can further change these settings anytime right from the Salesforce object. The security settings open up when you click on the Share button above. You can also update these settings by clicking the 'Edit Link Settings' option from the same dropdown as shown above. This option appears after you have created a sharing link. ![](https://media.help.cloudfiles.io/qs-access-share-and-track-a-file-sf/02.png) ## 5. Access the link To checkout how your file looks in the CloudFiles viewer, copy the link from the dialog above, and paste it in a browser window. This will open the file as a webpage, right there in the browser. You can also white-label the viewer by using your own custom logo & domain. ![](https://media.help.cloudfiles.io/qs-access-share-and-track-a-file-sf/03.png) ## 6. Check the Analytics You can view your file analytics right there from the Salesforce object. You can analyze a number of details such as opens, time spent, page wise analytics etc... You can also drill down into individual users, devices & sessions in case the link has been accessed multiple times. Analytics can be accessed by using the 'View analytics' button in the same dropdown. This option appears after you have created a sharing link. ![](https://media.help.cloudfiles.io/qs-access-share-and-track-a-file-sf/04.png) ## 7. Flows Support You can also do any of the things above through CloudFiles flow builder triggers or actions provided. These customizations can further streamline your processes. We provide a Create link action that can automatically create a sharing link and an Update Link Settings action that can be used to add security settings on a link. For more information on the various flow actions availabel in CloudFiles, check our articles on Flow Actions. ![](https://media.help.cloudfiles.io/qs-access-share-and-track-a-file-sf/05.png) --- # Share files in experience cloud (community) https://help.cloudfiles.io/salesforce/quick-start-to-share-files-in-experience-cloud-community # Share files in experience cloud (community) Learn how Salesforce Experience Cloud can enhance file sharing capabilities for businesses using the CloudFiles widget for bi-directional file-syncing between cloud storage, Salesforce objects, and community users. > Kind: Quick start · Updated: Jul 4, 2026 In this article, we cover a common file sharing use-case for businesses using the Salesforce experience cloud. Such businesses often have internal Salesforce objects managed by internal company users, which are also shared with external experience site users. However, file-related features in such implementations are usually missing. E.g. while your community users can upload files into the notes & attachments section, your internal users can only share files with community users using a chatter feed. Moreover, these files are not synced with your cloud storage (e.g. Google Drive, SharePoint, Dropbox etc...). In this article, we illustrate how a simple CloudFiles widget enables bi-directional file-syncing between your cloud storage, your Salesforce objects and your community users. Although there are a lot of customizations possible, we have focused this article on a specific use-case of associating a SharePoint folder with a Lead Object, exposing the folder contents to an experience site, and then selectively providing access to contents of that folder to the experience site user. This article is divided into the following sections - - Installation & Setup (Pre-requisites)- Quick steps on getting ready to use the CloudFiles app - Connect SharePoint Folder to Salesforce Lead- The folder widget will be used by internal users to do all the SharePoint file management from Salesforce Leads - Add Folder Widget to Experience Site- The folder widget can also be used on the experience site to make files accessible to experience site users - Adding permissions for community users - In this section, we add the necessary CloudFiles permission set for the external users - Accessing files as community user- Here we see how a community user can preview, download, update & upload files directly from the experience site to SharePoint folders - Setting access control for community users - Internal users can easily choose which files the community users can see or upload etc... We talk about these settings in this section. ## 1 - Installation & Setup (Pre-requisites) If you have not already done so, install the CloudFiles app in your production or sandbox environment and connect it to a CloudFiles account - Install the CloudFiles app from the Salesforce AppExchange. - Use the CloudFiles App Launcher to connect a CloudFiles account to your Salesforce org. - Connect integration user for SharePoint. Since Experience cloud users wouldn't be the users in your company's SharePoint, the access works through the integration user. Access control and permissions are handled by CloudFiles for community users. You can check detailed instructions along with screenshots in our Installation guide here. ## 2 - Connect SharePoint Folder to Salesforce Lead In order to share files on a experience site, we first need to associate some files or folders to a Salesforce object that we wish to share. In this step we use the CloudFiles folder widget to link a SharePoint folder with a Salesforce Lead Object. Moreover, while we are linking the folder manually in this step, it can also be automated using Salesforce Flows. You can check this article on Connect external folder to a record which has detailed screenshots on the setup. As shown in Steps 1 & 2 of the above article, you can drag and drop the Folder widget onto the lead objects and then use the link folder button to connect a folder from SharePoint to the record. Once the folder is connected, its live contents start showing on the record instantly as shown in the screenshot below - ![](https://media.help.cloudfiles.io/qs-share-files-in-experience-cloud-community-sf/01.png) Now that our internal folder is setup on the lead object, we can share this with our community users using the Salesforce Experience Site Builder ## 3 - Add Folder Widget to Experience Site Go to Salesforce Setup and search "Digital Experiences". Click on All Sites option under Digital Experiences and click on the "Builder" button of the site where you want to add the file sharing to. For our example, we will add a folder widget to the lead details page of our experience site. On the left side panel, select components and scroll down to find the 'CloudFiles' Component. Drag and drop this component. Next you need to set reference to a record in your internal salesforce, as well as the record type, to tell this widget where to pick files from. For this example, we simply picked the files from the associated lead using it's recordId. ![](https://media.help.cloudfiles.io/qs-share-files-in-experience-cloud-community-sf/02.png) ### Parameters - Record Id - Id of the Salesforce object. Use can use the standard variable {!recordId} to show the files/folder related to the displayed record - Object Name - API name of the object. For example - Lead. For the custom objects, please ensure the API name ends with __c - Widget Config Id - Optional. Id of the widget configuration to apply to this widget - Component Height - Optional. Height of the widget. Default value is 328px - Component Width - Optional. Widget of the widget, in percentage of the total page width. Default value is 100% of the page width - Default View - Optional. Allowed values are list or grid. Default value is list - Hide "New Folder" button - This option is deprecated. It's no longer used The steps are summarized in the video below - [Watch video](https://vimeo.com/879520067?share=copy) ### Adding CloudFiles community widget outside of a record page Sometime you might require to show content to your community users outside the context of a record. For example, in a customer community, you might show all files for the customer on Experience site home page. To achieve this, use the CloudFiles component as you would on the record pages, with following modifications in the parameters - - Record Id - Account id for the logged in user. For example, if the experience cloud user is a contact in your CRM, this would be {!CurrentUser.accountId}. You can find the list of all expressions available on a Experience site page here - Object Name - API name of the object. In this use case, Account Make sure to link the customer folder to their account page in Salesforce ### Adding CloudFiles community widget to your Experience site page code If you want to use CloudFiles community widget in the HTML code of your Experience site page, you can use the following code snippet Attributes - - record-id- Id of the Salesforce record which has the content attached - object-api-name - API name of the Salesforce record which has the content attached. For example - Account - component-width - Optional. Widget of the widget, in percentage of the total page width. Default value is 100% of the page width - component-height- Optional. Height of the widget. Default value is 328px - widget-config-id - Optional. Id of the widget configuration to apply to this widget That's it, now we are all set to see these files as a experience site user once we set the appropriate permissions for the experience site users. ## 4 - Add Permissions for experience cloud users Before your experience site users can see the connected folders, you need to enable appropriate permissions for them. This process can also be automated. Follow the simple steps below - - Go to Setup > Permission Sets. Select the 'CloudFiles External Users' - Click on Manage Assignments. Then Click Add Assignment. - Choose the users you want to add the CloudFiles Permission for. - Follow the prompts to finish the assignment process. Now we are ready to see the files as a community user would. ## 5 - Accessing files as community user Now login to your experience site as a user. Go to the appropriate page. You should be able to see the Files from the connected folder. You should also be able to upload, download, preview or search the files from right here. Here are the common file & folder operations supported by the CloudFiles Experience Cloud Widget. - Upload Files, Preview Files, Download Files, Edit / Replace Files - - New Folder, Rename Folder - Search for file / folder - Other operations such as create external sharing link, view analytics etc.. for community users. The screenshot below shows this in action - ![](https://media.help.cloudfiles.io/qs-share-files-in-experience-cloud-community-sf/03.png) ## 6 - Setting access control for community users In the previous step, as a community user, you could read and write all the files in the associated SharePoint folder. However, a common requirement is to restrict this access. For example, you may want the community users to be able to see only certain files in that folder. Moreover, you may also want to restrict the upload or download flexibility. As an internal user who has access to the Lead Object, you can do easily do this right from Salesforce. --- # Document Generation with CloudFiles https://help.cloudfiles.io/salesforce/document-generation-with-cloudfiles # Document Generation with CloudFiles Learn how to integrate Salesforce data into your document workflow using the CloudFiles Word add-in and CloudFiles Doc Gen LWC, including installing the add-in, creating and publishing templates, generating documents, and automating document generation. > Kind: Quick start · Updated: Jul 4, 2026 In this quick start guide, you will learn how to integrate Salesforce data into your document workflow using the CloudFiles Word add-in and CloudFiles Doc Gen LWC. You will discover how to install the CloudFiles Word add-in, create and publish personalized templates, and manually generate documents in your desired format. Additionally, this guide covers automating the document generation process based on specific triggers and attaching the generated documents to Salesforce records, streamlining your document management and improving efficiency. For more detailed information, visit Document Generation This article is divided into the following sections - - Insert CloudFiles Document Generation LWC: Learn how to insert and configure the CloudFiles Document Generation Lightning Web Component (LWC) within your Salesforce environment to enable seamless document generation. - Install CloudFiles Word Add-in: Follow the steps to install the CloudFiles Word add-in, which allows you to create and manage document templates directly within Microsoft Word. - Create Template: Discover how to create customized Word templates using the CloudFiles word add-in, leveraging Salesforce data to personalize your documents. - Publish Template: Understand the process of publishing your Word templates within Salesforce, making them available for document generation. - Generate Documents: Learn how to manually generate documents using your published templates. - Automate Document Generation: Explore the process of automating the document generation using CloudFiles flow actions & attaching the generated documents to desired salesforce record. Let's look into each section one by one - ## 1 - Insert CloudFiles Document Generation LWC The CloudFiles Document Generation Lightning Web Component (LWC) can be seamlessly integrated into any object's record detail page within Salesforce. Once incorporated, this widget will showcase all the published templates relevant to that specific object. Users have the flexibility to generate documents in either DOCX or PDF formats, which will be automatically downloaded upon creation, simplifying the document management process. ![](https://media.help.cloudfiles.io/qs-document-generation-with-cloudfiles-sf/01.png) To add the CloudFiles Doc Gen widget to a page, navigate to the record detail page of any object and click the “Edit Page” button. This will open the Lightning Builder for the page. Within the builder, you can easily drag and drop the "CloudFiles Doc Gen" widget into your desired location. After positioning the widget, save and exit the builder, then refresh the Salesforce record page. The widget will now display all the published templates associated with that object, making document generation more efficient and accessible. For visual understanding, refer to the video below - [Watch video](https://youtu.be/PPvVbst2dwE) ## 2 - Install CloudFiles Word add-in The CloudFiles Word add-in facilitates the integration of CloudFiles with your Salesforce Org, enabling you to create and design templates that incorporate Salesforce fields. This powerful tool streamlines the process of merging Salesforce data into documents, making it easier to generate consistent and accurate templates directly from Microsoft Word. To add the CloudFiles Word add-in to your Microsoft Word application, start by launching Microsoft Word on your PC. Navigate to the "Home" tab and click on "Add-ins" to explore available options. In the Add-ins window, select "+ More Add-ins" to open the "Office Add-ins" window, then click on "Microsoft AppSource" to be redirected to appsource.microsoft.com. In the search bar, type "CloudFiles" and browse the results to locate the CloudFiles Add-in. Click "Get it now" to install the add-in. Once the installation is complete, open Word to check the new add-in. In the "New Office Add-in" sidebar, click "Allow and Continue" to launch the CloudFiles Word add-in, ensuring it's ready for use with your Salesforce data. Refer to the video below to have a visual understanding of these steps - [Watch video](https://youtu.be/0Kzyf8FzEhI) ## 3 - Create Template You can create a template for any Salesforce object you want. Using various actions, you can insert object fields, related data, and custom resources. Additionally, you can add pictures, tables, and set conditions for content insertion, as well as specify the title of the generated documents. During the template creation process, you can utilize resources to retrieve data from the connected Salesforce Org and design the template with these resources using actions. Once the CloudFiles Word Add-in is installed and the Salesforce Org is connected, you can start building a template for a selected object. To get started, you must select your primary resource, i.e., the Master Object for which you wish to build the template. In the CloudFiles Add-in sidebar, select Salesforce as the platform and the Salesforce Object as the Master Resource. After clicking 'Submit,' you will be directed to the next stage of selecting actions and utilizing resources. Refer to the GIF below to have a visual understanding of this process - ![](https://media.help.cloudfiles.io/qs-document-generation-with-cloudfiles-sf/02.gif) ## 4 - Publish Template After building a template and reviewing it, the final step is to publish the template. Publishing makes the template available in your Salesforce Org for document generation on the specified object. To begin, navigate to the 'Publish' stage by clicking on 'Publish' in the 'Stage Progress Bar'. You will then need to choose your publishing option: either check the 'Publish as a New Template' checkbox to publish it as a new template for the object, or check the 'Select an existing template' checkbox and choose an existing template from the drop-down to update an existing one. Once you've made your selection, click 'Publish'. A pop-up message confirming 'Successfully Created a Template' will appear, indicating the template has been created. To verify the template, you can check the newly created or updated template from the 'CloudFiles Doc-Gen' widget on the object's page or from the 'Document Generation' tab of the CloudFiles app. Refer to the GIF to have a visual understanding of the steps above - ![](https://media.help.cloudfiles.io/qs-document-generation-with-cloudfiles-sf/03.gif) ## 5 - Generate Documents from CloudFiles Doc Gen LWC Once the CloudFiles Doc Gen LWC is added to the record page and the template has been published, you can start generating documents in either DOCX or PDF format, which will be automatically downloaded upon generation. To manually generate a document from CloudFiles Doc Gen LWC, navigate to the 'CloudFiles Doc Gen LWC' on any object page. Click the drop-down menu next to the template you want to use and select either 'Generate DOCX' or 'Generate PDF' for the desired document format. The document generation process takes a moment. Once completed, you can either download the generated document or choose 'Copy to Salesforce Files' to upload it as a Salesforce File, attaching it to the record in the 'Files' section. Refer to the video below to have a visual understanding of this step - [Watch video](https://youtu.be/ZWRfyzjwwwA) ## 6 - Automate Document Generation You can automate document generation using Salesforce Flow Builder and CloudFiles actions based on specific triggers and criteria. Below, we'll create two flows: one to automate document generation using Flow Action and another to ensure the generated documents are properly attached to the corresponding Salesforce records. This is how the automation looks like - ![](https://media.help.cloudfiles.io/qs-document-generation-with-cloudfiles-sf/04.gif) The flows are discussed in brief below - ### Flow 1 - Automate Document Generation Using Flow Action Create a new flow type that suits your needs, such as a Record-Triggered Flow. Add the 'CloudFiles: Generate Document' action to the flow and configure the action by entering the following parameters: - Format: Choose a format (DOCX or PDF). - Template ID: Enter the Template ID (found in the 'Document Generation' tab). - Record ID: Enter the object's record ID for which the document is to be generated. - User ID: Enter the CloudFiles System User's ID (the user used to set up CloudFiles in the Salesforce Org). ![](https://media.help.cloudfiles.io/qs-document-generation-with-cloudfiles-sf/05.png) Save and activate the flow. When the flow's trigger conditions are met, the action will automatically generate a document and create a Content Version in Salesforce. Refer the video below to have a visual understanding of these steps - [Watch video](https://youtu.be/EUZjRLpryCs) A CloudFiles Event of type document-generated is published upon document generation. The generated documents can be handled further through a Platform Event-Triggerred Flow given below - ### Flow 2 - Handle Generated Documents Using Platform Event-Triggered Flow Create a new platform-triggered flow and choose Platform Event as 'CloudFiles Event'. Configure the flow to handle the generated documents by following these steps: 1 - Add a Decision Element: Add a 'Decision' element to the flow to identify when a document is generated. - Resource: $Record > Type - Operator: "Equals" - Value: document-generated 2 - Get Event Details: Add a 'Get Event Details' action. Set the input value for the 'Event' parameter as {!$Record}. 3 - Check Object Type: Add a 'Decision' element to check the object type on which the document is generated. Set the condition to identify the object type as - Resource - Outputs from Get_Event_Details > DocumentGenerated > ParentId - Operator - "Starts With" - Value - Object ID identifier i.e., record ID's first 3 digits. For Account Record it is 001 4 - Get Content Version: Add a 'Get Records' element to get the 'Content Version' record of the generated document. Identify the record by ID using outputs from Get_Event_Details > DocumentGenerated > ContentVersionId. 5 - Attach the Generated Document to the Record: Add a 'Create Records' element to create 'Content Document Link'. Set the field values as - - LinkedEntityId: Outputs from Get_Event_Details > DocumentGenerated > ParentId - ContentDocumentId: Content Version from Get_generated_document_s_Content_Version > ContentDocument ID Save and activate the flow. This will ensure the generated document is attached to the record as a Salesforce File in the 'Files' section. This is how the final flow looks like - ![](https://media.help.cloudfiles.io/qs-document-generation-with-cloudfiles-sf/06.png) Refer to the GIF below to have a visual understanding of these steps - [Watch video](https://youtu.be/MoZUptvPqKo) To sum up, by following this guide, you can install the CloudFiles Word add-in, create and publish personalized templates, and automate document generation based on specific triggers. Additionally, it covers automating the attachment of generated documents to Salesforce records, streamlining your document management and improving efficiency. --- # Test Drive https://help.cloudfiles.io/salesforce/test-drive # Test Drive Welcome to the CloudFiles Salesforce Test Drive. This section illustrates the testing options available with the CloudFiles test drive across Document Generation, Document Management & Sharing, and Document AI. > Kind: Guide · Updated: Jul 9, 2026 Welcome to the CloudFiles - Salesforce Test Drive. In this section we illustrate various testing options that are available with the CloudFiles test drive. In order to access this, head over to any of our AppExchange listings and click on the 'Try It' button. Fill your info to access the test drive org. Once the test-drive is open, navigate to this article within the Instructions tab of the Test Drive. ## About Each Test Drive Each of the Test Drive articles cover 4 aspects - - Introduction - Summary of what is contained in the specific test - Instructions - Steps to test the feature out and expected results - Implementation - Flows and other components used for the specific test - Beyond - Extension of the test drive, explaining capabilities beyond the specific test ## Available Test Drives Here is a list of available test-drives based on each product - - Document Generation Test Drive - In this article, we will check how CloudFiles Doc-Gen generates customizable documents from Salesforce Object records and templates created using Microsoft Word. - Document Management & Sharing Test Drives - In this article, we explain how to use CloudFiles Document Management & Sharing Platform to explore its capabilities for managing and sharing documents. - Document AI Test Drives - In this article, we explain how CloudFiles Document AI enables you to extract information from files (OCR), classify documents, and intelligently split documents. ## Upcoming Test Drives We are in the process of adding more test drives. Here is a list of articles that are coming soon - Document Management - - Update SharePoint metadata columns (Rename folder) - Permission Updates - Copy from SharePoint to Salesforce - File Uploader using Files Connect - Creating SharePoint site automatically - File Counter using Get Folder Contents - Sharing & collecting files from external users - Sharing & collecting files from experience cloud users Document AI - - Splitting multiple combined POs into child objects - Handling CSV text Output from AI - Handling JSON Output from AI - Mass property extraction from a medical form - Signature Checking - Document Approval Workflows - Data Reconciliation using AI - Document Checklist - Calculations using AI - Rating Paragraphs using AI - Using CloudFiles AI without Document Context --- # Document Generation Test Drive https://help.cloudfiles.io/salesforce/document-generation-test-drive # Document Generation Test Drive This article covers the list of available test drives related to CloudFiles Document Generation use-cases. > Kind: Test drive · Updated: Jul 4, 2026 This article covers the list of available test drives related to AI-based document processing use-cases: - Automated Doc Gen - This test drive demonstrates how you can automatically generate documents based on templates using Salesforce data using Doc Generation Flow Actions. - Manual Doc Gen - Generate DOCX, XLSX, PPTX, or PDF documents from Salesforce records using CloudFiles templates and a simple click-based interface. - Merge Documents - In this test drive, you will explore how CloudFiles Document Generation, integrated with Salesforce Flows, can automatically merge multiple Salesforce files into a single PDF document. - Merge External Documents - In this test drive, you will explore how CloudFiles Document Generation, integrated with Document Management and Salesforce Flows, can automatically merge multiple documents stored in external storage (e.g., SharePoint, Google Drive) into a single consolidated PDF file. - Real-Time Document Generation with Runtime Variables - This test drive showcases the next level: generating documents using dynamic runtime variables. Instead of relying solely on Salesforce field values, you’ll populate an invoice through a guided Screen Flow, which accepts custom input directly from the user and generates a document on the fly. - Secure PDF Generation - This test drive is an addition to the previous one, focusing exclusively on PDF encryption capabilities available at the final stage of the process — offering organizations greater control and security over their generated documents. --- # Automated Doc Gen https://help.cloudfiles.io/salesforce/automated-doc-gen # Automated Doc Gen This Test Drive demonstrates how to automate document generation using Salesforce Flows and Doc Generation Flow Actions, building on the Manual Doc Gen Test Drive. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In Manual Doc Gen Test Drive, we see how users can generate documents directly from templates using the CloudFiles Doc-Gen component on record pages. This Test Drive demonstrates the next level — how you can automate document generation using Salesforce Flows and Doc Generation Flow Actions. ## Instructions Follow the same process as described in the Manual Doc Gen Test Drive: - Go to 'Contracts' tab and create a new Contract. - Fill in all the required fields in the 'New Contract' form: - 'Account Name' : Choose an existing account or create a new one. - 'Price Book' : Select "CloudFiles Price Book" from the options. - 'Contract Image URL' : Provide a public URL for an image. - 'Contract Start Date' : Pick a date. - 'Customer Signed Date' : Pick a date. - 'Contract Term' : Enter a numerical value. - 'Customer Signed By' : Select an existing contact or create a new one. - 'Status' : Leave as default i.e. 'Draft' - Once the Contract is created, edit the Status field and set it to 'Activated' to trigger the flow automation. - Within seconds, a Contract PDF and Excel file will be auto-generated and attached to the record in the 'Files' related list— no clicks needed. You may need to refresh the page to see the changes. The below image displays the 'Contract' Record page after the generation: ![](https://media.help.cloudfiles.io/td-automated-doc-gen-sf/01.png) > **Store Generated Files in Connected External Storage** — If you want to see how CloudFiles Document Management & Sharing works alongside Document Generation you can also generate files directly into connected external storage platforms (like SharePoint, Google Drive, One Drive etc.) After setting the Status field to 'Activated', open the CloudFiles widget in the Files tab of the Contract record. You’ll find the generated files located in the connected external folder.Note: If you don’t see a connected folder or the files haven’t appeared yet, simply refresh the widget or the page. Note: If you don’t see a connected folder or the files haven’t appeared yet, simply refresh the widget or the page. The below image displays a sample 'Contract' pdf file generated: ![](https://media.help.cloudfiles.io/td-automated-doc-gen-sf/03.png) ## Implementation This demo automation was configured using Salesforce Flows configured with Doc Generation Flow Actions : - Triggers based on Contract Status field updates - Generate Document (Sync) Flow Action is executed. - Store them either as Salesforce Files or push them into external storage The below image displays the 'Contract' Template configuration: ![](https://media.help.cloudfiles.io/td-automated-doc-gen-sf/04.png) The below image displays the Flow being triggered behind this demo: ![](https://media.help.cloudfiles.io/td-automated-doc-gen-sf/05.png) > For more information, please refer to Doc Generation Flow Actions ## Beyond this Test Drive The Doc Generation Flow Actions can be applied to many real-world automations beyond this simple demo. Below are some extended possibilities: ### Auto-Generate Documents on Key Record Updates Trigger file creation when records reach specific stages or conditions in Salesforce. Example: When an Opportunity reaches “Closed Won,” automatically generate a Quote and a Thank-You letter, and attach them to the record. ### Multi-Format Document Generation Produce multiple formats of the same template in one go. Example : From a Contract record, generate a PDF for client signature and a Word copy for internal editing. ### Store in Salesforce or External Systems Decide where to store generated files — natively in Salesforce or in connected storage (SharePoint, Google Drive, OneDrive, AWS S3, etc.). Example: Generate monthly invoices and save them directly in SharePoint under a customer-specific folder while keeping metadata inside Salesforce. ### Dynamic Runtime Variables Insert values directly from Salesforce records or flow runtime variables into templates. Example: Pull billing details from related objects or calculate discounts dynamically in real-time and insert them into an invoice. ### Screen Flow-Driven Document Generation Capture values from users during a screen flow and inject them into templates as runtime inputs. Example: A sales rep runs a screen flow that collects deal terms, payment conditions, and special clauses, then instantly generates a Quote PDF with those details filled in. ### Chain with Communication Workflows Combine with Flows to email, share, or notify users once documents are generated. Example: After generating a new Service Agreement, automatically email it to the customer with Salesforce email alerts. ### Batch Generation at Scale Run scheduled or batch flows to mass-generate documents for groups of records. Example: Every quarter, generate performance reports for all active accounts and save them in a client-facing Experience Cloud site. ### Enforce PDF Security Controls Protect sensitive documents with configurable PDF restrictions. Example: Generate policy documents that cannot be printed or edited, with password protection enabled for opening. With just a few clicks in Flow Builder, Doc Generation Flow Actions empower you to build sophisticated document generation workflows without writing a single line of code. There are other test drives available that might be of interest to you as well. Head back to the Test Drive article to continue testing. --- # Manual Doc Gen https://help.cloudfiles.io/salesforce/manual-doc-gen # Manual Doc Gen A test-drive walkthrough of CloudFiles Doc-Gen: creating a Contract, generating DOCX/XLSX/PPTX/PDF documents from a Salesforce record using a Word/Excel/PowerPoint template, and downloading or saving the result to Salesforce Files. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we will explore how CloudFiles Doc-Gen generates customizable documents (DOCX, XLSX, PPTX, and corresponding PDFs) from Salesforce Object records and templates created using Microsoft Word or Power Point or Excel. The entire process takes less than a minute to complete. Refer to the below video to understand what to expect in this test drive - [Watch video](https://youtu.be/zDt79gY0yBo) In order to access this test drive, head over to our Salesforce AppExchange listing & click on the 'Try It' button. Enter your information to open the test drive org. Once the test-drive is open, navigate to this article within the 'Instructions' tab of the Test Drive. ## Instructions To test out this feature, follow the simple instructions below. - Go to 'Contracts' tab and create a new Contract. - Fill in all the required fields in the 'New Contract' form: - 'Account Name' : Choose an existing account or create a new one. - 'Price Book' : Select "CloudFiles Price Book" from the options. - 'Contract Image URL' : Provide a public URL for an image. - 'Contract Start Date' : Pick a date. - 'Customer Signed Date' : Pick a date. - 'Contract Term' : Enter a numerical value. - 'Customer Signed By' : Select an existing contact or create a new one. - Once the Contract is created, open it and find the 'CloudFiles' Doc-Gen component on the record. ![](https://media.help.cloudfiles.io/td-manual-doc-gen-sf/01.png) - The component will display templates configured for the 'Contract' object. ![](https://media.help.cloudfiles.io/td-manual-doc-gen-sf/02.png) - Click the drop-down next to a template and select either 'Generate PDF' or 'Generate DOCX/PPT/Excel' to create the document. ![](https://media.help.cloudfiles.io/td-manual-doc-gen-sf/03.png) - The file generation takes a moment of time. ![](https://media.help.cloudfiles.io/td-manual-doc-gen-sf/04.png) - Once generated you can - 'Download' the document to your computer - 'Copy to Salesforce Files' to save it as a Salesforce file on the record. Refer to the GIF below for visual understanding of the above steps - ![](https://media.help.cloudfiles.io/td-manual-doc-gen-sf/05.gif) ## Implementation This setup uses Document Generation powered by: - Template Creation in Microsoft Word, Excel, or PowerPoint - Doc Gen Widget Set-up The Doc-Gen component reads record data, applies it to the chosen template, and outputs a document in the required format. Generated files can be instantly downloaded, stored as Salesforce Files, or synced into external storage via CloudFiles Document Management. The below image displays the 'Contract' Template configuration: ![](https://media.help.cloudfiles.io/td-manual-doc-gen-sf/06.png) For more details please refer to Document Generation. ## Beyond this Test Drive The possibilities of document generation with CloudFiles Doc-Gen extend beyond this specific scenario. Below are several practical examples and extended capabilities: ### Multi-format Template Creation CloudFiles Doc-Gen supports Template Creation and customization across multiple file formats. Example: Create PDFs with form fields, Word documents (.docx), Excel sheets (.xlsx), and PowerPoint presentations (.pptx) to cater to various use cases and requirements. ### Universal Salesforce Object Support Templates can be designed for any Salesforce standard or custom object. Example: Generate customized quotes from Opportunities, detailed case reports from Cases, or personalized client communications from Contacts. Each object can have multiple unique templates. ### Advanced Template Configuration Templates can accommodate complex and highly customized configurations. Example: Configure templates with conditional content insertion, dynamic tables from related lists, calculated fields, and complex formatting using CloudFiles Template Builder and . ### Flexible Salesforce Integration CloudFiles Doc-Gen components can be embedded in various Salesforce interfaces. Example: Place the on Salesforce Lightning record pages, internal apps, or customer-facing Experience Cloud pages, enabling diverse users easy access to document generation functionality. ### Workflow Automation Automate document generation within Salesforce processes and workflows. Example: Integrate document generation with Salesforce Flow or CloudFiles to automatically create, store, and distribute documents based on record triggers, approvals, or events, while saving generated files directly to Salesforce Files or external storage systems. There are other test drives available that might be of interest to you as well. Head back to the Test Drive article to continue testing. --- # Merge Documents https://help.cloudfiles.io/salesforce/merge-documents # Merge Documents Explore how CloudFiles Document Generation, integrated with Salesforce Flows, can automatically merge multiple Salesforce files into a single PDF document. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, you will explore how CloudFiles Document Generation, integrated with Salesforce Flows, can automatically merge multiple Salesforce files into a single PDF document. This setup allows users to upload multiple files into a record, select specific files for merging, and generate a single consolidated file. The merged output is automatically saved as a child Result Document record. > **Note** — Note: The file types supported for merging are PDF, DOCX, Images (PNG and JPEG). All of this is powered by Salesforce flows and the flow actions from CloudFiles. The test drive takes less than a minute to complete. ## Instructions Follow the steps below to test the setup: - Go to the Split or Merge Documents tab and create a new record. No additional input is required — just save it. - Upload a few files using the standard Files related list on the record. ![](https://media.help.cloudfiles.io/td-merge-documents-sf/01.png) - Click the 'Merge Files' button. This will launch a screen flow. - From the screen, select the files you want to merge and click 'Merge'. ![](https://media.help.cloudfiles.io/td-merge-documents-sf/02.png) - CloudFiles will combine the selected files and generate a new Result Document record. - You can find the final merged file attached to this new child record. ![](https://media.help.cloudfiles.io/td-merge-documents-sf/03.png) ## Implementation This test drive is implemented using a Salesforce screen flow, powered by the Merge Documents (Sync) flow action. The screen flow performs the following steps: - Collects all ContentDocumentIds from files attached to the parent record. - Displays a list of those files on a screen where users can select which ones to merge. - Passes the selected content documents to the Merge Documents (Sync) action. - Retrieves the final merged file (as a ContentVersion). - Creates a Result Document child record and attaches the merged PDF to it. ![](https://media.help.cloudfiles.io/td-merge-documents-sf/04.png) ## Beyond This Test Drive The Merge Documents (Sync) action from CloudFiles isn’t limited to just this test drive—it can be reused across a variety of Salesforce flows and automation scenarios. Whether you're working with screen flows, record-triggered flows, or scheduled flows, this action can help automate document packaging tasks across teams. Below are few ways this action can be leveraged in broader enterprise use cases: ### Screen Flows for On-Demand Document Packaging Use the merge action in guided screen flows where users interactively select files to merge, rename output, or trigger downstream steps. Example: A sales rep merges a quote, terms sheet, and case study into a single proposal PDF to send to a prospect—right from an Opportunity screen flow. ### Auto-Merge on Record Save (Record-Triggered Flows) Trigger the document merge automatically when certain conditions are met—like when a record reaches a specific stage or status. Example: When an HR record reaches "Ready to Offer," the system automatically merges the offer letter, NDA, and job description into a single hiring packet. ### Scheduled Flows for Batch Document Compilation Run scheduled flows that periodically merge documents (daily, weekly, monthly) for operational tasks. Example: A scheduled flow merges all invoices generated during the week into a single summary PDF for monthly archiving or email delivery. ### Post-Signature Document Bundling After a contract is signed via eSignature, use the merge action to combine the signed contract, terms, and client documents into a single client archive package. Example: In a service onboarding flow, once DocuSign completes a contract, merge the signed file with the onboarding checklist and welcome doc. ### Merge External Files Before Upload or Storage Combine files from external sources (e.g., SharePoint, Google Drive) into a single document before uploading to Salesforce or an external archive. Example: A legal team merges uploaded draft contracts from SharePoint into one file before pushing to Salesforce for final review. ### Dynamic File Assembly Based on Related Records Use flow logic to dynamically gather and merge files based on related objects or metadata conditions. Example: For a project record, gather all linked project phase reports, then merge and attach them as a consolidated report for clients. With its synchronous execution and tight Salesforce integration, the CloudFiles Merge Documents (Sync) provides a fast, reliable way to automate multi-file operations—reducing manual effort while improving document accessibility and consistency. --- # Merge External Documents https://help.cloudfiles.io/salesforce/merge-external-documents # Merge External Documents This test drive shows how CloudFiles Document Generation, integrated with Document Management & Sharing and Salesforce Flows, can automatically merge multiple documents stored in external storage into a single consolidated PDF file. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, you will explore how CloudFiles Document Generation, integrated with Document Management & Sharing and Salesforce Flows, can automatically merge multiple documents stored in external storage (e.g., SharePoint, Google Drive) into a single consolidated PDF file. This setup allows users to upload multiple documents to a connected folder, select desired files to merge and then trigger a flow that generates a new combined PDF. > **Note** — Note: The file types supported for merging are PDF, DOCX, Images (PNG and JPEG). All of this is powered by Salesforce flows and the flow actions from CloudFiles. The test drive takes less than a minute to complete. ## Instructions Follow the steps below to test the setup: - Go to the Split or Merge Documents tab and create a new record. No additional input is required — just save it. - Navigate to the External Files tab on the record and and upload multiple files using the CloudFiles widget. This uploads the documents into the connected external folder (i.e. a SharePoint folder). Refresh the widget if the folder doesn't appear. - In the file list, select the files you wish to combine. Then, click on the list button dropdown and choose "Merge". - Wait a few seconds for the automation to complete. Refresh the page to view updates. - CloudFiles will combine the selected files and generate a new document named "Merged.pdf" into the folder. - A corresponding Result Document record is created and the final merged file can be found attached to record, in the CloudFiles widget under the External Files tab. ![](https://media.help.cloudfiles.io/td-merge-external-documents-sf/01.png) ![](https://media.help.cloudfiles.io/td-merge-external-documents-sf/02.png) ![](https://media.help.cloudfiles.io/td-merge-external-documents-sf/03.png) ![](https://media.help.cloudfiles.io/td-merge-external-documents-sf/04.png) ![](https://media.help.cloudfiles.io/td-merge-external-documents-sf/05.png) ## Implementation This test drive is implemented using a Salesforce auto-launched flow, powered by the Merge Documents (Sync) flow action. The screen flow performs the following steps: - Collects ResourceIds of files selected - Passes the selected ResourceIds to the Merge Documents (Sync) action. - Creates the final merged file into connected folder. - Creates a Result Document child record and attaches the merged PDF to it. ![](https://media.help.cloudfiles.io/td-merge-external-documents-sf/06.png) Additionally, this setup leverages the ability to add custom buttons to the file dropdown or list view in the CloudFiles component. These buttons can be configured to launch either screen flows or auto-launched flows, providing seamless integration and user-triggered automation directly from the file interface. ![](https://media.help.cloudfiles.io/td-merge-external-documents-sf/07.png) ## Beyond This Test Drive The Merge Documents (Sync) action from CloudFiles isn't limited to just this test drive—it can be reused across a variety of Salesforce flows and automation scenarios. Whether you're working with screen flows, record-triggered flows, or scheduled flows, this action can help automate document packaging tasks across teams. Below are few ways this action can be leveraged in broader enterprise use cases: ### Screen Flows for On-Demand Document Packaging Use the merge action in guided screen flows where users interactively select files from CloudFiles widget to merge external storage files, rename output, or trigger downstream steps. Example: A sales rep merges a quote, terms sheet, and case study into a single proposal PDF to send to a prospect—right from an Opportunity screen flow. ### Auto-Merge on Metadata Updates (CloudFiles- Event Triggered Flows) Trigger the document merge automatically when certain conditions are met—like when an external resource's metadata meet certain conditions. Example: When a SharePoint folder's custom 'Status' column is updated as final,then system automatically merges all it's files into a single file. ### Scheduled Flows for Batch Document Compilation Run scheduled flows that periodically merge documents (daily, weekly, monthly) for operational tasks. Example: A scheduled flow merges all invoices generated during the week into a single summary PDF for monthly archiving or email delivery. ### Post-Signature Document Bundling After a contract is signed via eSignature, use the merge action to combine the signed contract, terms, and client documents into a single client archive package. Example: In a service onboarding flow, once DocuSign completes a contract, merge the signed file with the onboarding checklist and welcome doc. ### Dynamic File Assembly Based on Related Records Use flow logic to dynamically gather and merge files based on related objects or metadata conditions. Example: For a project record, gather all linked project phase reports, then merge and attach them as a consolidated report for clients. With Document Generation + Document Management & Sharing, CloudFiles allows you to automate generation and organizing documents in external storage directly from Salesforce—boosting operational efficiency and enhancing user interactions. --- # Real-Time Document Generation with Runtime Variables https://help.cloudfiles.io/salesforce/real-time-document-generation-with-runtime-variables # Real-Time Document Generation with Runtime Variables This test drive showcases generating documents using dynamic runtime variables, populating an invoice through a guided Screen Flow that accepts custom input directly from the user. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In the test drives Manual Doc Gen and Automated Doc Gen, we demonstrated how CloudFiles Doc-Gen enables users to generate customizable documents (DOCX, XLSX, PPTX, or PDFs) using templates and Salesforce record data. This test drive showcases the next level: generating documents using dynamic runtime variables. Instead of relying solely on Salesforce field values, you’ll populate an invoice through a guided Screen Flow, which accepts custom input directly from the user and generates a document on the fly. In order to access this test drive, head over to our Salesforce AppExchange listing & click on the Try It button. Enter your information to open the test drive org. Once the test-drive is open, navigate to this article within the Instructions tab of the Test Drive. ## Instructions To test out this feature, follow the simple instructions below: - Go to Opportunities tab and create a new Opportunity with basic details. - Once the record is saved, open it and click the Generate Invoice button. ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/01.png) - This launches the CloudFiles: Opportunity Dynamic Invoice DocGen Screen flow. You’ll now see a guided screen where you can enter your own runtime details. ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/02.png) - In the Invoice Details section, fill out information such as the invoice number, who prepared it, the document name, and date/time. ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/03.png) - Choose whether you want to generate a PDF or DOCX file. ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/04.png) - In the Contact Details, enter the customer's information, including Email (make sure it's valid — the document will be emailed here). ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/05.png) - Under Products, toggle ON the Products you wish to be included as Line Items in the Invoice and specify quantity and unit price. ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/06.png) - In the Subscription Period, set the start and end dates for the billing cycle. ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/07.png) - Lastly, add any custom notes for the customer using the Rich Text Editor in Note to Customer section. ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/08.png) - When you're ready, click Generate. Within seconds, the invoice will be created and attached to the Files related list of the opportunity. ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/09.png) - You’ll also receive an email with the generated file as an attachment. ## Implementation This demo is powered by Salesforce Flow Builder combined with Generate Document (Sync) Flow Action. The key components of the flow include: - Screen elements to collect runtime input from the user. - Assignment elements to map these inputs to variables. - A Generate Document (Sync) action that invokes the Doc-Gen process using: - Template ID - File type - Runtime variables - Destination - Record context The runtime values are not pulled from fields — instead, they’re entered by the user at runtime and passed as Runtime Variables. The below image displays the Flow being triggered behind this demo: ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/10.png) The below image displays the 'Invoice' Template configuration in MS Word: ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/11.png) CloudFiles supports a variety of variable types, including: - Runtime Variables (entered via flows) - Record Single Variables (individual records) - Record Collection Variables (lists of records) Each variable can be configured with a specific data type such as String, Boolean, Integer, Date, Time, DateTime, Double, and Rich Text. ![](https://media.help.cloudfiles.io/td-real-time-document-generation-with-runtime-variables-sf/12.png) ## Beyond this Test Drive The ability to generate documents synchronously with runtime variables unlocks powerful use cases across industries. Here are some practical scenarios: ### Interactive Quote Generation Use runtime variables in guided screen flows where sales reps input discounts, special terms, or custom product bundles, and instantly generate a customer-ready quote. Example: A sales rep enters runtime values during a call with a prospect and immediately produces a tailored Quote PDF with discounts and custom terms that can be emailed on the spot. ### On-Demand Contracts & Agreements Legal or HR teams can enter runtime values such as role, compensation, and start date into a flow, dynamically adjusting contract clauses. Example: An HR manager inputs details for a new hire and instantly generates a ready-to-sign Employment Contract PDF with clauses based on runtime conditions. ### Custom Invoices with Dynamic Line Items Finance teams add runtime details such as tax rates, subscription dates, or additional charges into flows to generate invoices in real-time. Example: An accounts executive generates a monthly Subscription Invoice PDF where runtime values define billing dates and dynamic line items are calculated immediately. ### Personalized Customer Communications Service reps use runtime variables to insert details like SLA commitments, complaint descriptions, or resolution notes into pre-defined templates. Example: A support agent generates a Case Resolution Letter PDF with runtime-entered troubleshooting steps and commitments, emailed directly to the customer. ### Secure Document Delivery with Flow-Controlled Encryption Sensitive documents can be generated with PDF encryption settings defined at runtime, such as viewer passwords or restricted printing. Example: A compliance officer generates a Compliance Report PDF where the viewer password is dynamically set using runtime variables before the document is shared externally. ### Event-Specific or Time-Sensitive Documents Marketing teams capture runtime details such as attendee names, event sessions, or offers and generate personalized documents instantly. Example: A marketing coordinator uses runtime inputs to generate Event Participation Certificates PDF for attendees with dynamic QR codes included. Synchronous Document Generation - Unlike other tools that use delayed async methods, CloudFiles supports real-time (sync) document generation. This means: - No delays or polling - Instant file availability for email, attachments, or external storage - Seamless experience for users and automation flows With CloudFiles’ runtime variables + synchronous generation, Salesforce users can build workflows where documents are customized in real-time and immediately usable — whether for approvals, emails, secure sharing, or client communication. --- # Secure PDF Generation https://help.cloudfiles.io/salesforce/secure-pdf-generation # Secure PDF Generation This test drive shows how to enable PDF encryption — view passwords and PDF locking — at the final stage of CloudFiles Doc-Gen's Salesforce Flow document generation. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In the previous test drive Real-Time Document Generation with Runtime Variables, we demonstrated how CloudFiles Doc-Gen can generate documents using user input collected at runtime through a Salesforce Flow. This short test drive builds on that by focusing exclusively on PDF encryption capabilities available at the final stage of that process — offering organizations more control and security over their generated documents. In order to access this test drive, head over to our Salesforce AppExchange listing & click on the Try It button. Enter your information to open the test drive org. Once the test-drive is open, navigate to this article within the Instructions tab of the Test Drive. ## Instructions Follow all steps from the Real-Time Document Generation with Runtime Variables est drive up until the final screen of the flow. Just before clicking Generate, you’ll see a section labeled Encrypt Document (ONLY PDF). Here's how to use it: - Enable Encryption by checking the box: “Want to Encrypt the Generated File?” - Set Password Controls - Toggle Set View Password to restrict who can open the file. - Toggle Lock PDF to disable editing, copying, or printing. - Enter the corresponding passwords in the input fields. ![](https://media.help.cloudfiles.io/td-secure-pdf-generation-sf/01.png) - Click Generate as usual. The output PDF will be encrypted with the applied restrictions and emailed to the address you provided during the flow. ![](https://media.help.cloudfiles.io/td-secure-pdf-generation-sf/02.png) ## Implementation This demo is powered by Salesforce Flow Builder combined with Generate Document (Sync) Flow Action. The below image displays the Flow being triggered behind this demo: ![](https://media.help.cloudfiles.io/td-secure-pdf-generation-sf/03.png) ## Beyond this Test Drive PDF encryption is just one piece of CloudFiles’ broader security framework. By combining encryption with Flow-driven logic, you can tailor document protection to meet business and compliance needs. Here are a few real-world scenarios: ### Confidential Proposal Delivery Restrict opening and printing of sensitive proposals generated for high-value deals. Example: A sales team generates a proposal PDF with runtime data, secured with a view password before sharing with the client. ### Compliance-Driven Reports Apply strict retention and editing rules on regulatory documents. Example: A compliance officer generates quarterly audit reports with PDF locking enabled, preventing unauthorized edits or copies. ### HR & Legal Documents Secure employment contracts or NDAs with dynamic encryption before distribution. Example: An HR manager generates a contract PDF with an owner password to prevent editing and ensures only the candidate (via a view password) can open it. ### Customer Data Protection Enforce GDPR or HIPAA requirements on customer-facing documents. Example: A healthcare provider generates patient summaries with PDF form-filling disabled, ensuring data integrity and compliance. ### Controlled Distribution in Flows Automate when and how encryption is applied — per record, per stage, or per user role. Example: Contracts generated at the “Legal Review” stage automatically apply password-protected access before being sent to external parties. With CloudFiles, security isn’t an afterthought — it’s built into the generation process itself, delivering encrypted documents instantly with no waiting, no polling, and no third-party tools required. --- # Document Management & Sharing Test Drives https://help.cloudfiles.io/salesforce/document-management-and-sharing-test-drives # Document Management & Sharing Test Drives This article contains the list of available test drives related to document management use-cases. > Kind: Test drive · Updated: Jul 4, 2026 This article contains the list of available test drives related to document management use-cases - - Automatic Folder Structures Test Drive - In this article, we will check how CloudFiles creates automatic and customizable folder structures using Salesforce flows and shows them right there on the record. - CloudFiles Widget Configurations Test Drive - In this article, we will demonstrate how CloudFiles allows you to edit SharePoint columns values and also enforce mandatory SharePoint columns within the file upload widget. - Copy Email Attachments to Case Folders Test Drive - In this article, we will check how CloudFiles can copy Case email attachments to external storage like SharePoint using a simple Salesforce flow along with some CloudFiles elements. - Custom Object Creation on File Upload Test Drive - In this article, we will check how CloudFiles generates custom object records upon file uploads into external storage. These records aid in global file searches and storing file metadata in Salesforce for reporting. - External File Sharing & Collection via CloudFiles Datarooms - In this article, we'll see how CloudFiles enables secure external sharing and file collection through auto-generated datarooms and Cloudfiles links. - Move External Storage Files to SFDC Files Test Drive - In this test drive, you will explore how CloudFiles Document Mnagement , integrated with Salesforce Flows, can seamlessly copy files stored in external storage (e.g., SharePoint, Google Drive, OneDrive) back into Salesforce as native Salesforce Files. - Move Lead folder to Account folder on conversion - In this article, we will check how CloudFiles can relocate folders linked to records in external storage when record updates occur. For example, moving Lead folder into it's Account folder upon conversion. - Move SFDC Files to External Storage Test Drive - In this article, we will check how CloudFiles can copy or move SFDC files of any type or size to external folders based on custom logic. - Nested Folders based on Object Relationships Test Drive - In this article, we will check how CloudFiles can create nested folder hierarchy based on object relationships (e.g. Opportunity folder inside Account Folder). - Template Folder Cloning Test Drive - In this test drive, we’ll demonstrate how CloudFiles can automatically create folders based on a template with the specified subfolders or files using Salesforce flows and show them right there on the record. - Update SharePoint Folder Name Test Drive - In this article, we'll explore how CloudFiles can automatically rename a record's folder when the record name is updated. --- # Automatic Folder Structures Test Drive https://help.cloudfiles.io/salesforce/automatic-folder-structures-test-drive # Automatic Folder Structures Test Drive A test drive walkthrough showing how CloudFiles automatically creates customizable folder structures in SharePoint via Salesforce flows when a new Account record is created. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we will check how CloudFiles creates automatic and customizable folder structures using Salesforce flows and shows them right there on the record. The test drive would take less than a minute to complete. Watch the video below for a quick overview of what you can expect in this test drive. [Watch video](https://youtu.be/66e3vxKZW78) Follow the instructions in the next section to test. The subsequent sections explain the setup for this test drive as well as what else is possible as an extension of this Test drive. ## Instructions To test out this feature, follow the simple instructions below. - Start the CloudFiles Test Drive from our AppExchange listing. - Go to 'Accounts' tab and create a new account - In the 'Account Type' property dropdown, select any value. Each value creates a different folder structure. - Once the account is created, go to the 'Files' tab on the record. - You will see a ready-to-go folder structure on the record that was automatically created in SharePoint > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see anything in the Files Tab, try refreshing the CloudFiles widget a couple times. The GIF below gives a visual representation of these steps. ![](https://media.help.cloudfiles.io/td-automatic-folder-structures-test-drive-sf/01.gif) ## Implementation The following video shows the flow that made this possible. If you'd like detailed steps on this implementation, check out our tutorial on this use-case at Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects. [Watch video](https://youtu.be/yZAey69W42o) ## Beyond this Test Drive We have addressed a very specific use-case of custom folder structure creation on Salesforce Account records. However, there are many variations of this possible such that it can fit your custom use-case. Check the pointers below - - The folder structures being created are configured using Flows. You can configure it to create any type of folder / sub-folder structure with any naming convention and hierarchy. - Beside a static sub-folder structure, you can also create nested folder structures based on SFDC object relationships. E.g. a parent account folder with specific opportunity folders inside. We have covered this in another Test Drive article. - We have used SharePoint as the external storage however the same can be configured with any other external storage including Google Drive, Amazon AWS S3, OneDrive, Azure, Dropbox etc.. - We have shown this demo only on the Account, however CloudFiles LWC and automations are supported for all standard and custom objects. There are other test drives available that might be of interest to you as well. Head back to the Test Drive article to continue testing. --- # CloudFiles Widget Configurations Test Drive https://help.cloudfiles.io/salesforce/cloudfiles-widget-configurations-test-drive # CloudFiles Widget Configurations Test Drive This test drive demonstrates how CloudFiles allows you to edit SharePoint columns values and also enforce mandatory SharePoint columns within the file upload widget. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we will demonstrate how CloudFiles allows you to edit SharePoint columns values and also enforce mandatory SharePoint columns within the file upload widget. This feature ensures that users fill in all required fields before uploading files into SharePoint through the CloudFiles widget. This setup helps in maintaining data integrity by ensuring that crucial metadata is captured during the upload process. The entire test drive will take less than a minute to complete. Watch the video below for a quick overview of what you can expect in this test drive. [Watch video](https://youtu.be/7fXkMtwyzsM) Follow the instructions in the next section to try it out. The subsequent sections explain the setup for this test drive as well as additional possibilities that can be explored with this feature. ## Instructions To test out this feature, follow the simple instructions below : - Navigate to the 'Opportunities' tab and create a new Opportunity. This action will automatically create a corresponding SharePoint folder, which can be viewed in the 'Files' tab. - Click the "Upload Files" button or drag and drop files into the folder to begin uploading. - In the 'Upload Files' pop-up window, select a value for the "Document Type" column for each file being uploaded, then click "Next." Notice that the "Next" button will not activate until a column value is selected for each file. - Once the files are uploaded, click "Done." - You can now view the uploaded files in the widget, along with their associated SharePoint columns. - To update the SharePoint column values, click the "Edit" or pencil icon next to any column cell. - This will make the column value editable. Update the value as needed. You can modify multiple column values in a single edit interface. - After making the necessary updates, click "Save" to apply the changes. The GIF below gives a visual representation of these steps. ![](https://media.help.cloudfiles.io/td-cloudfiles-widget-configurations-test-drive-sf/01.gif) > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see anything in the Files Tab, try refreshing the CloudFiles widget or Page a couple times. ## Implementation The following video shows the implementation that made this possible. [Watch video](https://youtu.be/hWZYy9fNOVA) ## Beyond this Test Drive In this test drive, we demonstrated how to display and enforce mandatory column values for files uploaded through the widget. This functionality can be easily adapted to fit various custom use cases. Here are a few additional possibilities: - While our demo focused on the Opportunity Page Widget, CloudFiles LWC and its configurations work seamlessly with all standard and custom Salesforce objects. - You can set up multiple widget configurations. For example, you can have one configuration for the Opportunity Page, another for the Account Page, and yet another for the Opportunity widget on an Experience Cloud site. - This test drive used only one mandatory column, but you can require as many columns as needed to capture relevant information before file uploads. - You can even selectively permit users to update column values. - While we showcased only "Choice" and "Date" column types, you can configure a wide range of column types such as Text, Checkbox, and more, depending on your requirements. To know more about the different configuration options possible, please refer to the Internal Record Widget Guide. There are other test drives available that might be of interest to you as well. Head back to the Test Drive article to continue testing. --- # Copy Email Attachments to Case Folders Test Drive https://help.cloudfiles.io/salesforce/copy-email-attachments-to-case-folders-test-drive # Copy Email Attachments to Case Folders Test Drive A test drive demonstrating how CloudFiles copies Case email attachments to external storage like SharePoint using a Salesforce flow. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we'll see how CloudFiles copies Case email attachments to external storage like SharePoint using a simple Salesforce flow along with some CloudFiles elements. Watch the video below for a quick overview of what you can expect in this test drive. [Watch video](https://youtu.be/kYZzqOSK5cQ) Follow the instructions in the next section to test. The subsequent sections explain the setup for this test drive as well as what else is possible as an extension of this test drive. ## Instructions To test out this feature, follow the simple instructions below : - To create a case, send an Email to support@1teyd0ucjs0vxujym2hjrpcstatzrhvl43ohv3bubtgzca5gh9.ao-1tbgxea0.usa848.case.salesforce.com with any subject. - Attach a few files to this email. These can be any type or size of files. - Go to 'Cases' tab and open the created case. It may take upto a minute for the case to get created. - Within the 'Files' tab, find all email attachments copied into the Case Folder which is located in SharePoint. > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see anything in the Files Tab, try refreshing the CloudFiles widget a couple times. The GIF below gives a visual representation of these steps ![](https://media.help.cloudfiles.io/td-copy-email-attachments-to-case-folders-test-drive-sf/01.gif) ## Implementation The following video shows the flow that made this possible. [Watch video](https://www.youtube.com/embed/WK3n2--mA1M) For a more detailed step by step instruction guide, you can refer to our tutorial -Copy Email Attachments to Case Folders in external storage if Email-to-Case is activated ## Beyond this Test Drive In this test drive, we've seen how CloudFiles copies Case email attachments to the Case folder. However, there are many variations of this possible such that it can fit your custom use-case. Consider these possibilities among many: - Selectively copy attachments. For instance, you could copy only '.jpg' attachments. - The test drive supports any type or size of file. - Organise copied attachments into folders by type or name pattern. For example, place attachments with 'screenshot' in their name into a separate subfolder. - Once copied, you can delete the original file from Salesforce if needed. - You can transfer attachments between different objects. For example, you can move all email attachments to the customer's account folder who sent the email. - You can even delete the copied files from Salesforce storage so as to keep your file storage cost low. You may find other test drives equally engaging. Do visit the Test Drive article to explore other test drives. --- # Custom Object Creation on File Upload Test Drive https://help.cloudfiles.io/salesforce/custom-object-creation-on-file-upload-test-drive # Custom Object Creation on File Upload Test Drive A test drive walkthrough showing how CloudFiles automatically creates custom object records (Work Order Documents) in Salesforce when files are uploaded into record-linked SharePoint folders. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we will check how CloudFiles can create custom object records when files are uploaded into record linked folders in external storage. These custom objects are useful for searching files in global search or for storing file metadata in salesforce for reporting purposes. Watch the video below for a quick overview of what you can expect in this test drive. [Watch video](https://youtu.be/FADF5gEvPFs) Follow the instructions in the next section to test. The subsequent sections explain the setup for this test drive as well as what else is possible as an extension of this test drive. ## Instructions To test out this feature, follow the simple instructions below : - Go to 'Work Orders' tab and create a new Work Order. This should create a SharePoint folder visible in the 'Files' tab of the record. - Upload a few files into the Work Order Folder from the widget. These files can be of any type or size. - Refresh the page. In the 'Work Order Documents' related list, you will find newly created records for each file uploaded into the Work Order Folder. - The Names and SharePoint URLs of the uploaded files are populated into the relevant fields of the corresponding Work Order Document records. - You can try searching for the file name in the global search and would come across the correct result. > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see anything in the Files Tab, try refreshing the CloudFiles widget a couple times. The GIF below gives a visual representation of these steps ![](https://media.help.cloudfiles.io/td-custom-object-creation-on-file-upload-test-drive-sf/01.gif) ## Implementation The following video shows the flow that made this possible. [Watch video](https://www.youtube.com/embed/1sTDYn9N2u8) ## Beyond this Test Drive In this test drive, we've seen how CloudFiles can create custom object records when files are uploaded into Work Order folders in SharePoint. However, there are many variations of this possible such that it can fit your custom use-case. Check the pointers below: - The same can be configured with any other external storage including Google Drive, Amazon AWS S3, OneDrive, Azure, Dropbox etc. - Here we have configured custom object record creation with file uploads into Work Order folders. However, you can extend this to uploads into folders connected to any Object. - You can populate the custom object's fields with other properties as well such as the resource's path in external storage, file size, etc. - The same functionality can also be extended to file uploads on Experience Cloud Sites too. - The created custom objects can be used in global search to search for a file using it's name or metadata. - These custom objects can also be used for reporting purposes. You may find other test drives equally engaging. Do visit the Test Drive article to explore other test drives. --- # External File Sharing & Collection via CloudFiles Datarooms https://help.cloudfiles.io/salesforce/external-file-sharing-and-collection-via-cloudfiles-datarooms # External File Sharing & Collection via CloudFiles Datarooms Explore how CloudFiles can automatically create externally shareable links for sharing files and collecting uploads using Datarooms. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we will explore how CloudFiles can automatically create externally shareable links for sharing files and collecting uploads using Datarooms. This enables you to: - Share multiple folders and files from external storage - Receive uploaded files from users who don’t have access to your Salesforce org or connected storage This entire setup is powered by Salesforce Flows and CloudFiles Flow Actions — and the process takes less than a minute to complete. Refer to the below video to understand what to expect in this test drive - [Watch video](https://youtu.be/st3pDcI-7NU) ## Instructions To test out this feature, follow the simple instructions below : - Go to 'Leads' tab and create a new Lead. - This creates a SharePoint folder, with a specific folder structure visible in the 'Files' tab. ![](https://media.help.cloudfiles.io/td-external-file-sharing-and-collection-via-cloudfiles-dataroom-sf/01.png) - A cloudfiles link shall also be updated into the 'Dataroom Link' Field on the Lead. ![](https://media.help.cloudfiles.io/td-external-file-sharing-and-collection-via-cloudfiles-dataroom-sf/02.png) The Dataroom Link field on the Lead record will be auto-populated with a CloudFiles URL. This link is externally shareable and enables two key things: - Viewing resources in selected folders (e.g., “Shared Files” and “Documentation”) - Uploading files directly into “Documentation” via a file request section ![](https://media.help.cloudfiles.io/td-external-file-sharing-and-collection-via-cloudfiles-dataroom-sf/03.png) > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see anything in the Files Tab, try refreshing the CloudFiles widget a couple times. ## Implementation Here’s how this is set up behind the scenes: - A Record-Triggered Flow launches when a Lead is created. - It performs the following actions: - Create Lead Folder in SharePoint and attaches it the record. - Create Subfolders including 'Documentation' & 'Shared Files' - Create a CloudFiles Dataroom for the Lead - Add folders 'Documentation' & 'Shared Files' to Dataroom as shared resources - Create a File Request pointing to the Documentation subfolder - Generate a CloudFiles Link for the Dataroom and update it on the Lead These are powered by CloudFiles Flow Actions Create Dataroom , Add to Dataroom and Create Link . ![](https://media.help.cloudfiles.io/td-external-file-sharing-and-collection-via-cloudfiles-dataroom-sf/04.png) ## Beyond this Test Drive This demo addresses a common use-case: enabling resource sharing and file collection via Datarooms for Leads. However, you can tailor this setup for your business needs: - Works with Google Drive, OneDrive, Dropbox, AWS S3, Azure, and more — not just SharePoint - Add any number of files/folders as resources and configure multiple File Request sections - Whitelabel Datarooms to match your brand (logo, theme, subdomain) - Add security controls to shared links: email validation, expiration dates, passwords - If you don't need a full Dataroom, you can share individual files or folders via CloudFiles links There are other test drives available that might be of interest to you as well. Head back to the Test Drive article to continue testing --- # Move External Storage Files to SFDC Files Test Drive https://help.cloudfiles.io/salesforce/move-external-storage-files-to-sfdc-files-test-drive # Move External Storage Files to SFDC Files Test Drive Explore how CloudFiles Document Management & Sharing, integrated with Salesforce Flows, can seamlessly copy files stored in external storage back into Salesforce as native Salesforce Files. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, you will explore how CloudFiles Document Management & Sharing, integrated with Salesforce Flows, can seamlessly copy files stored in external storage (e.g., SharePoint, Google Drive, OneDrive) back into Salesforce as native Salesforce Files. This setup enables: - Uploading files into a connected external storage folder directly from Salesforce records. - Copying selected files back into Salesforce as Content Documents. - Automatically attaching these files to the originating Salesforce record. All of this is powered by CloudFiles Document Management and Salesforce Flows. The test drive takes under a minute to complete. ## Instructions To test out this feature, follow the simple instructions below: - Navigate to the 'Opportunities' tab and create a new Opportunity. This action will automatically create a corresponding SharePoint folder, which can be viewed in the 'Files' tab. - Click the "Upload Files" button or drag and drop files into the folder to begin uploading. - In the 'Upload Files' pop-up window, select a value for the "Document Type" column for each file being uploaded, then click "Next." Notice that the "Next" button will not activate until a column value is selected for each file. - Once the files are uploaded, click "Done." - The Files are directly uploaded into SharePoint and can be viewed in the widget. - To copy these files back into Salesforce, select the files from the widget and, from the list view actions, click Copy into Salesforce. ![](https://media.help.cloudfiles.io/td-move-external-storage-files-to-sfdc-files-test-drive-sf/01.png) - Wait a few seconds for the automation to complete. Refresh the page. - You will now find the external files created as Salesforce Files and attached to the record’s Files related list. ![](https://media.help.cloudfiles.io/td-move-external-storage-files-to-sfdc-files-test-drive-sf/02.png) ## Implementation This solution uses Salesforce Flows that invoke CloudFiles Flow Actions. CloudFiles Document Management handles: - Passing the selected files’ Resource IDs to the flow. - The flow then executes the Create Salesforce Files (Batch) action, which creates Salesforce Files from external storage files. - Once the Content Versions are created, a Content Version Created Batch event shall be published, from event details, Content Document Links are created to attach the files to the record. ![](https://media.help.cloudfiles.io/td-move-external-storage-files-to-sfdc-files-test-drive-sf/03.png) Additionally, this setup leverages the ability to add custom buttons to the file dropdown or list view in the CloudFiles component. These buttons can be configured to launch either screen flows or auto-launched flows, providing seamless integration and user-triggered automation directly from the file interface. ![](https://media.help.cloudfiles.io/td-move-external-storage-files-to-sfdc-files-test-drive-sf/04.png) ## Beyond This Test Drive The Create Salesforce Files (Batch) action is not just about the ability — it unlocks powerful scenarios where external storage files need to interact seamlessly with Salesforce-native processes and users. Here are a few key use cases where this capability shines: ### Enable Access for Salesforce-Only Users Copy selected external storage files into Salesforce so they can be shared with users who don’t have access to CloudFiles or the external storage system. Example: A sales rep without SharePoint access can still view proposal files once they are copied into Salesforce Files. ### Compatibility with Third-Party Integrations Some Salesforce integrations only work with Salesforce Files (Content Documents). Copying ensures compatibility with these apps and workflows. Example: An e-signature tool that only accepts Salesforce Files can work seamlessly after external contracts are copied in. ### Cross-Storage File Migration Use Salesforce as a bridge to move files from one external storage to another. Example: Copy a contract from SharePoint into Salesforce Files, then sync it to AWS S3 as part of an archival process. ### Leverage Native Email & File Features Bring external files into Salesforce to use them with native Salesforce features like sending files as email attachments. Example: A proposal stored in OneDrive can be copied in and directly emailed from Salesforce with a single click. ### Approval Processes with Files Files copied into Salesforce can participate in native approval workflows, allowing document-driven processes to run smoothly. Example: A contract uploaded to Google Drive is copied into Salesforce and routed through a multi-step approval process. In essence, this feature extends CloudFiles’ Document Management by ensuring external content can fully participate in Salesforce’s ecosystem — from approvals, sharing, and emailing, to third-party integrations and cross-platform file workflows. --- # Move Lead folder to Account folder on conversion (Test Drive) https://help.cloudfiles.io/salesforce/Zr9W-move-lead-folder-to-account-folder-on-conversion # Move Lead folder to Account folder on conversion In this test drive, learn how CloudFiles can relocate folders linked to records in external storage when record updates occur, such as moving a Lead folder into its Account folder upon conversion. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we'll see how CloudFiles can relocate folders linked to records in external storage when record updates occur. For example, moving Lead folder into it's Account folder upon conversion. Watch the video below for a quick overview of what you can expect in this test drive. [Watch video](https://youtu.be/9njI5kIk8xY) Follow the instructions in the next section to begin testing. Subsequent sections will detail the setup for this trial and additional possibilities for extending it. ## Instructions To test out this feature, follow the simple instructions below : - Go to 'Leads' tab and create a new Lead. This creates a SharePoint folder visible in the 'Files' tab. - Click 'Convert' on the Lead record. - In the 'Convert Lead' form, pick 'Create New' or 'Choose Existing' for Account. - Leave the other defaults as they are and click 'Convert'. - Open the converted Account and check the Account folder in the 'Files' tab. You will find the Lead Folder moved into the Account folder. > Flow execution, folder creation and folder relocation may take some time (a few seconds to a minute). If you don't see any changes in the Files Tab, try refreshing the CloudFiles widget a couple times. The GIF below gives a visual representation of these steps ![](https://media.help.cloudfiles.io/td-move-lead-folder-to-account-folder-on-conversion-sf/01.gif) ## Implementation The following video shows the flows that made this possible. [Watch video](https://youtu.be/vfBazXDWvrA) For a more detailed step by step instruction guide, you can refer to our tutorial - Move Lead folder to Account folder on conversion ## Beyond this Test Drive In this test drive, we've seen how CloudFiles can move Lead folders into their respective Account folders upon conversion. However, there are many variations of this possible such that it can fit your custom use-case. Check the pointers below: - The same can be configured with any other external storage including Google Drive, Amazon AWS S3, OneDrive, Azure, Dropbox etc. - Here we have configured relocation of Lead folder into the Account folder upon conversion. However, you can configure relocation into any sub-folder as well. E.g. your can configure the flow such that a Leads sub-folder is created for every account and the individual lead folder moves inside of it. - You can extend this to any Object and their updates like field changes, record deletion etc. For example, relocation of record folders upon record deletion. - You can also modify the properties of the relocated folder. For instance, the name of the Lead Folder, originally the person's name, can be changed to simply 'Lead' after it's moved into the respective account folder. - Move functionality extends to files as well. Other basic functionality such as rename or delete is also available through flows. You may find other test drives equally engaging. Do visit the Test Drive article to explore other test drives. --- # Move SFDC Files to External Storage Test Drive https://help.cloudfiles.io/salesforce/move-sfdc-files-to-external-storage-test-drive # Move SFDC Files to External Storage Test Drive In this test drive, check how CloudFiles can move documents stored in SFDC to an external storage such as SharePoint, copy them into custom folders, and optionally delete the originals from Salesforce. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we will check how CloudFiles can move documents stored in SFDC (e.g. in the Notes & Attachments section of a record) to an external storage such as SharePoint. We will see how you can copy these documents into any external folder based on your custom logic. Additionally we will also see how you can delete the original file from Salesforce if needed. Watch the video below for a quick overview of what you can expect in this test drive. [Watch video](https://youtu.be/BbdDAck9zvc) ## Instructions To test out this feature, follow the simple instructions below : - Go to 'Accounts' tab and create a new Account. This should create a SharePoint folder visible in the 'Files' tab of the record. - Within the 'Notes & Attachments' section, upload some files. Try various formats including PDFs, Excels etc... - Check the 'Files' tab again - All PDFs would be copied to the 'Presentations' sub-folder - All other formats would be copied to the root account folder - All uploaded files would get deleted from Salesforce except for excel files > Copying and Deleting of Salesforce Files may take some time (a few seconds to a minute). If you don't see a copy of uploaded files, try refreshing the CloudFiles widget a couple times. The GIF below gives a visual representation of these steps. ![](https://media.help.cloudfiles.io/td-move-sfdc-files-to-external-storage-test-drive-sf/01.gif) ## Implementation The following video shows the flow that made this possible. If you'd like detailed steps on this implementation, check out our tutorial on this use-case at Automatically moving files from Salesforce storage to external storage. [Watch video](https://youtu.be/gNKtypisQFo) ## Beyond this Test Drive In this test drive, we've seen how CloudFiles helps copy or move your Salesforce Files and organize them in your external storage based on file types. However, there are many variations of this possible such that it can fit your custom use-case. Consider these possibilities among many: - The same functionality can be extended to email-to-case. I.e. your email attachments can be moved to case folders which reside in SharePoint or any other external storage. - Files of any size or type are supported by this. You can try uploading files larger than 12 MB as well. - The functionality works for manual uploads as well as automatica uploads (e.g. from other apps such as Conga or Docusign). - In this demonstration, we've illustrated file organization using few specific file types, but the capability extends to virtually any file type. You can even organise the files based on file properties like file name, creation date etc. - You can also copy / move files across objects. E.g. files uploaded on a lead object can be copied to the account folder. You may find other test drives equally engaging. Do visit the Test Drive article for further exploration. --- # Nested Folders based on Object Relationships Test Drive https://help.cloudfiles.io/salesforce/nested-folders-based-on-object-relationships-test-drive # Nested Folders based on Object Relationships Test Drive Explores how CloudFiles can create nested folder structures that mirror object relationships in Salesforce, such as opportunity folders nested inside account folders. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we explore how CloudFiles can create nested folder structures that mirror the object relationship in your Salesforce. For instance, the opportunity folders can be created inside the account folder. Watch the video below for a quick overview of what you can expect in this test drive. [Watch video](https://youtu.be/gHAjmo59cCs) Follow the instructions in the next section to test. The subsequent sections explain the setup for this test drive as well as what else is possible as an extension of this test drive. ## Instructions To test out this feature, follow the simple instructions below : - Go to 'Accounts' tab and create a new account. You will see a folder in the 'Files' tab of the account record. - Go to 'Opportunities' tab and create a new Opportunity. Choose the account as the one we created in the last step. - Check out the automatically created Opportunity Folder in the 'Files' tab of the opportunity record. - Head back to the account record. You will notice that the above folder got created inside the 'Opportunities' sub-folder of the account. > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see anything in the Files Tab, try refreshing the CloudFiles widget a couple times. The GIF below gives a visual representation of these steps. ![](https://media.help.cloudfiles.io/td-nested-folders-based-on-object-relationships-test-drive-sf/01.gif) ## Implementation The following video shows the flow that made this possible. [Watch video](https://youtu.be/dhH48A43WSs) ## Beyond this Test Drive In this test drive, we've explored how CloudFiles creates nested folders based on object relationships. However, there are many variations of this possible such that it can fit your custom use-case. Check the pointers below - - We have shown a simple two-level hierarchy. However this can be as complex as you need it to be and can even include custom objects. E.g. you can implement a four-level hierarchy between Accounts, Opportunities, Contacts and Projects. - Beside nested folders, you can also use other methods such as creating static sub-folders or using a template folder which is cloned. These are explained in other test drives. - It's possible to move folders as well. So for example, a folder can be created for a lead, and then moved inside the account folder later on when the lead is converted. You might also want to explore other test drives that could catch your interest. Visit the Test Drive article to explore more testing options. --- # Template Folder Cloning Test Drive https://help.cloudfiles.io/salesforce/template-folder-cloning-test-drive # Template Folder Cloning Test Drive Test drive demonstrating how CloudFiles can automatically create folders based on a template with specified subfolders/files using Salesforce flows. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we’ll demonstrate how CloudFiles can automatically create folders based on a template with the specified subfolders or files using Salesforce flows and show them right there on the record. The test drive would take less than a minute to complete. Watch the video below for a quick overview of what you can expect in this test drive - [Watch video](https://youtu.be/TtE6en3mynY) Follow the instructions in the next section to test. The subsequent sections explain the setup for this test drive as well as what else is possible as an extension of this test drive. ## Instructions To test out this feature, follow the simple instructions below : - Go to 'Leads' tab and create a new Lead. This creates a SharePoint folder visible in the 'Files' tab. - You will see a Folder that was automatically created in SharePoint with a structure that replicates the Template Folder. The below image depicts the Template Lead Folder structure. ![](https://media.help.cloudfiles.io/td-template-folder-cloning-test-drive-sf/01.png) The GIF below gives a visual representation of these steps. ![](https://media.help.cloudfiles.io/td-template-folder-cloning-test-drive-sf/02.gif) > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see anything in the Files Tab, try refreshing the CloudFiles widget a couple times. ## Implementation The following video shows the flow that made this possible. [Watch video](https://youtu.be/uOm6vjR6m2E?feature=shared) > This implementation is possible only with SharePoint, Dropbox and Box. ## Beyond this Test Drive We've demonstrated a specific use case of cloning a template folder structure on Salesforce Lead records. However, this approach can be adapted to suit various custom use cases. Consider the following points: - While our demo focused on Leads, CloudFiles LWC and automations are compatible with all standard and custom objects. - The template folder can include a sub-folder hierarchy of any depth. Although we demonstrated up to the 3rd level, it can be extended further. - The folder structures are configured using Flows, allowing you to choose different templates. For instance, you can decide a template based on Record Type or any other field. There are other test drives available that might be of interest to you as well. Head back to the Test Drive article to continue testing. --- # Update SharePoint Folder Name Test Drive https://help.cloudfiles.io/salesforce/update-sharepoint-folder-name-test-drive # Update SharePoint Folder Name Test Drive A quick test drive showing how CloudFiles automatically renames a record's SharePoint folder when the record's name (e.g. Account Name) is updated in Salesforce. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we'll explore how CloudFiles can automatically rename a record's folder when the record name is updated. For instance, if an Account Name is changed in Salesforce, the corresponding folder name in SharePoint will also be updated automatically. This test drive takes less than a minute to complete. Watch the video below for a quick overview of what you can expect in this test drive. [Watch video](https://youtu.be/NGA_pAy_MmQ) Follow the instructions in the next section to begin the test. The sections that follow will explain the setup for this test drive and discuss additional possibilities beyond this scenario. ## Instructions To test this feature, follow these simple steps: - Navigate to the 'Accounts' tab and create a new account. - In the 'Account Type' dropdown, select any value. Each selection generates a different folder structure. - After creating the account, go to the 'Files' tab to view the corresponding Account folder that has been automatically created in SharePoint, named after the Account. - Now, update the Account Name to something different. - Refresh the widget or page, and you’ll see that the folder's name has also been automatically updated. > Flow execution and property updates may take a few seconds to a minute. If you don't notice any changes in the Files Tab, try refreshing the CloudFiles widget or page a few times. The GIF below gives a visual representation of these steps. ![](https://media.help.cloudfiles.io/td-update-sharepoint-folder-name-test-drive-sf/01.gif) ## Implementation The following video shows the flow that made this possible. [Watch video](https://youtu.be/YLc0BtYU4h8) ## Beyond this Test Drive In this demo, we focused on renaming an Account folder when the Account name is updated. However, this can be adapted to fit many different custom use cases. Consider the following points - - Although this demo used Account records and their corresponding folders, CloudFiles LWC and automations are compatible with all standard and custom objects. - The same action can be applied to modify or set other metadata columns within the folder. - You can also use this action to modify or set metadata column values for files within the folder. - Set up workflows to automatically apply metadata tags or categorize files. For example, based on specific Account fields like industry type, customer tier, or region when uploading files to a folder. There are other test drives available that might be of interest to you as well. Head back to the Test Drive article to continue testing. --- # Document AI Test Drives https://help.cloudfiles.io/salesforce/document-ai-test-drives # Document AI Test Drives This article covers the list of available test drives related to AI-based document processing use-cases. > Kind: Test drive · Updated: Jul 4, 2026 This article covers the list of available test drives related to AI-based document processing use-cases: - Business Document Fields & Line Items Extractor - In this test drive, you will explore how CloudFiles Document AI integrated with Salesforce Flows can automatically process business documents — such as Purchase Orders, Invoices, Quotes, or any other structured document — and intelligently extract key information. - Document AI Playground Test Drive - Use our AI Playground to upload your documents and ask questions from them. Perfect your prompts to get proper, formatted answers. - Document Mapper - In this test drive, you’ll see how CloudFiles’ Document Mapper automates processing of business documents like POs, invoices, and quotes using Salesforce List View Buttons. It detects document type, extracts key data, parses line items when available, and presents an AI-assisted preview for review. Once confirmed, the mapped records are saved directly into Salesforce, streamlining document-based data entry with a no-code, AI-powered experience. - KYC Upload Checker using AI - Use CloudFiles AI with Salesforce flows to check the file uploads for driving license and passport and if found, extract specific information from these documents and update it in Salesforce fields. - Smart SharePoint Column Updates Using Document AI - In this test drive, you'll see how CloudFiles Document Management integrates with Document AI to intelligently process external files uploaded via the CloudFiles widget into SharePoint — and automatically update their corresponding SharePoint Columns. - Split External Files using AI - In this test drive, you will explore how CloudFiles Document AI and Document Management, integrated with Salesforce Flows, can automatically process merged or misorganized PDF documents stored in external storage and intelligently split them into individual files using provided instructions. - Split Salesforce Files using AI - In this test drive, you will explore how CloudFiles Document AI, integrated with Salesforce Flows, can automatically process merged or misorganized PDF documents and intelligently split them into individual files using provided instructions. --- # Business Document Fields & Line Items Extractor https://help.cloudfiles.io/salesforce/business-document-fields-and-line-items-extractor # Business Document Fields & Line Items Extractor Explore how CloudFiles Document AI integrated with Salesforce Flows can automatically process business documents and intelligently extract key information. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, you will explore how CloudFiles Document AI integrated with Salesforce Flows can automatically process business documents — such as Purchase Orders, Invoices, Quotes, or any other structured document — and intelligently extract key information. Refer to the below video to understand what to expect in this test drive - [Watch video](https://youtu.be/1kvVAvq9bbw) The setup will: - Automatically identify the type of document (PO, Invoice, Quote, etc.) - Extract important fields like Document Number, Document Date, Total Amount, Company Name, and a Document Description - If the document contains Line Items, it will parse and create child Line Item records linked to the parent Business Document record The entire flow is automated using CloudFiles Document AI and Salesforce automation. This test drive takes less than a minute to complete. ## Instructions Follow the steps below to test the setup: - Go to the Business Documents tab and create a new record. No additional input is required — just save it. - Upload a document (Purchase Order, Invoice, Quote, or other) into the Files related list in any format (PDF, DOCX, or image). - Wait a few seconds for automation to trigger. Refresh the page to see the updates. - Check AI Output - CloudFiles AI will classify the document and update the Document Type field to one of: Purchase Order, Invoice, Quote, or Other. - Other fields such as Document Number, Document Date, Total Amount, Company and Document Decsription will also be auto-populated on the Business Document record. - If the document includes line items (e.g., from a PO or Invoice), you will see related Line Item records created showing Item Name, Quantity, Unit Price, and Line Amount. ![](https://media.help.cloudfiles.io/td-business-document-fields-and-line-items-extractor-sf/01.png) > Optional: Process External FilesIf you want to see how CloudFiles Document Management & Sharing works alongside Document AI to process external files, like sharepoint files, upload the documents via the CloudFiles widget in External Files tab of the record. (If don't see a folder connected in the widget, simply refresh the widget or the page) ## Implementation This demo is powered by Salesforce Flows with the following: Salesforce File Attached, Process Document using AI and Query Document/Dataset. CloudFiles Document AI handles classification, summarization, and extraction, while a Platform Event triggers updates once processing is complete. ![](https://media.help.cloudfiles.io/td-business-document-fields-and-line-items-extractor-sf/03.png) > For more information, please refer to Document AI Tutorials, Batching AI Queries and Line Item Extraction. ## Beyond This Test Drive This demo showcases a single workflow, but the capabilities of CloudFiles Document AI extend far beyond simple classification and extraction. By combining AI-powered document understanding with Salesforce automation, you can build scalable, intelligent workflows across departments. Here are a few advanced applications: ### Contract Intelligence & Summarization Summarize contracts and extract key obligations, renewal dates, or termination clauses. Example: When a new vendor contract is uploaded, Salesforce fields are auto-updated with renewal reminders and risk tags, and routed for approval. ### Complex Table & Form Parsing Handle semi-structured forms such as insurance claims, compliance reports, or regulatory filings. Example: Multi-page compliance reports are parsed, and each section is stored as structured data linked to the appropriate Salesforce object. ### Document Type Routing & Workflow Triggers Use document type and extracted fields to direct files into the correct process. Example: Invoices are routed to Finance, contracts to Legal, and POs to Procurement — all automatically, based on classification and metadata. ### Validate Document Calculations Go beyond extraction by checking math and consistency inside uploaded documents. Example: AI verifies that Invoice Total = Σ(Line Item Amounts + Taxes). If there’s a mismatch, Salesforce can automatically flag the document for review. ### Cross-Check Against Salesforce Data Compare extracted fields with existing Salesforce records to detect discrepancies. Example: A vendor’s submitted PO is validated against the Opportunity or Quote in Salesforce — if item prices, totals, or dates don’t align, a discrepancy alert is generated. ### File-to-File Line Item Matching Identify mismatches between related documents uploaded at different times. Example: Compare a customer Quote and their later submitted Purchase Order. If quantities or unit prices differ, Salesforce can notify the sales team before fulfilment. ### Fraud & Error Detection Detect duplicate or inconsistent records across files. Example: AI flags when the same invoice number appears twice from the same vendor, preventing double payment. ### End-to-End Order Reconciliation Automate reconciliation between Quotes, POs, Invoices, and Delivery Notes. Example: Salesforce Flows compare extracted line items across all related documents, ensuring that what was promised in the Quote matches what was ordered, invoiced, and shipped. For more advanced configurations, tutorials and ideas, visit Document AI Tutorials. Let CloudFiles Document AI + Salesforce work together to make your document processing workflows intelligent, fast and scalable. --- # Document AI Playground Test Drive https://help.cloudfiles.io/salesforce/document-ai-playground-test-drive # Document AI Playground Test Drive In this test drive, we will use the AI Playground offered by the CloudFiles Test Drive to see how engineered prompts can give ready to use results and automate data entry for Salesforce. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we will use the AI Playground offered by the CloudFiles Test Drive to see how engineered prompts can give ready to use results and automate data entry for Salesforce. The test drive would take less than a minute to complete. In order to access this test drive, head over to our Salesforce AppExchange listing & click on the 'Try It' button. Enter your information to open the test drive org. Once the test-drive is open, navigate to this article within the Instructions tab of the Test Drive. ## Instructions To test out this feature, follow the simple instructions below. - Go to 'Document AI' tab. - Click on the 'AI Playground' option in the sidebar. This opens the AI playground. - Upload a document here. Make sure you delete your documents after you are done. - Ask a question using the chat panel on the side. E.g. "What is this document about? Give a 10 word summary." - Format and pin point the answer through better prompts. E.g. "What is the total amount due. Give answer as a number." Refer to the image below for visual understanding of the above steps - ![](https://media.help.cloudfiles.io/td-document-ai-playground-test-drive-sf/01.png) ## Beyond this Test Drive This test drive only demonstrates the power of Document AI. However the real value is derived by combining AI with automations. E.g. here are some possibilities - - Extract driving license number of invoice sender address as soon as the file is uploaded in the notes & attachments section. - Extract comma separated lists and populate checklists fields. E.g. known conditions from the medical checklist. - Create summary of letters or extract clauses from contracts to fill up Salesforce text fields that are easy to reference. Check out our Test Drive on automatic data entry using AI-based OCR to experience the true power of AI automations. --- # Document Mapper (Test Drive) https://help.cloudfiles.io/salesforce/_XWd-document-mapper # Document Mapper Explore how CloudFiles's Document Mapper feature integrated with Salesforce List View Buttons can automatically process business documents and intelligently extract key information and create relevant records. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, you will explore how CloudFiles's Document Mapper feature integrated with Salesforce List View Buttons can automatically process business documents — such as Purchase Orders, Invoices, Quotes, or any other structured document — and intelligently extract key information and create relevant records. The setup will: - Automatically identify the type of document (PO, Invoice, Quote, etc.) - Extract important fields like Document Number, Document Date, Total Amount, Company Name, and Document Description - If the document contains Line Items, it will parse them and map child Line Item records linked to the parent Business Document record - Present an AI-assisted preview screen where users can review and edit extracted fields before saving - Save the mapped data into Salesforce once confirmed by the user This entire experience is powered by CloudFiles Document Mapper — a no-code, AI-driven engine for Salesforce that brings automation, flexibility, and accuracy to document-based data entry. ## Instructions Follow the steps below to test the setup: - Go to the Business Documents tab and click on New with Document Mapper. This opens the Document Mapper interface. ![](https://media.help.cloudfiles.io/td-document-mapper-sf/01.png) - Upload a document (Purchase Order, Invoice, Quote, or other) in any format (PDF, DOCX, or image). - Wait a few seconds while CloudFiles AI processes the document and maps the Salesforce Fields. - Check AI Output in the preview window - CloudFiles AI will classify the document and update the Document Type field to one of: Purchase Order, Invoice, Quote, or Other. - Other fields such as Document Number, Document Date, Total Amount, Company and Document Decsription will also be mapped. - If the document includes line items (e.g., from a PO or Invoice), check the Related Tab to view Line Item records with Item Name, Quantity, Unit Price, and Line Amount mappings. - Make any additional edits manually (if needed) and click Save Records. A Business Document record will be created — along with related Line Item records if applicable. ![](https://media.help.cloudfiles.io/td-document-mapper-sf/02.png) ## Implementation This demo is powered by CloudFiles Document Mapper a configuration-driven, no‑code setup to extract data from uploaded documents and map it to Salesforce. - AI extracts fields and records based on your Document Mapper configuration - A preview screen lets users review and edit extracted values - On save, Salesforce records (parent and related) are created or updated instantly Simple. Configurable. AI-powered data entry for Salesforce. > For more information, please refer to Document Mapper. ## Beyond This Test Drive This demo showcases a straightforward use case — but CloudFiles' Document Mapper can be used across complex business workflows and departments. Here are a few advanced applications: ### Contract Intelligence & Summarization Summarize contracts and extract key obligations, renewal dates, or termination clauses. Example: When a new vendor contract is uploaded, Salesforce fields are auto-updated with renewal reminders and risk tags, and routed for approval. ### Complex Table & Form Parsing Handle semi-structured forms such as insurance claims, compliance reports, or regulatory filings. Example: Multi-page compliance reports are parsed, and each section is stored as structured data linked to the appropriate Salesforce object. ### Document Type Routing & Workflow Triggers Use document type and extracted fields to direct files into the correct process. Example: Invoices are routed to Finance, contracts to Legal, and POs to Procurement — all automatically, based on classification and metadata. ### Validate Document Calculations Go beyond extraction by checking math and consistency inside uploaded documents. Example: AI verifies that Invoice Total = Σ(Line Item Amounts + Taxes). If there’s a mismatch, Salesforce can automatically flag the document fields for review. ### Cross-Check Against Salesforce Data Compare extracted fields with existing Salesforce records to detect discrepancies. Example: A vendor’s submitted PO is validated against the Opportunity or Quote in Salesforce — if item prices, totals, or dates don’t align, a discrepancy alert is generated. For more advanced configurations, tutorials, and ideas, visit the Document AI Tutorials. Let CloudFiles Document AI + Salesforce work together to make your document processing workflows intelligent, fast, and scalable. --- # KYC Upload Checker using AI https://help.cloudfiles.io/salesforce/kyc-upload-checker-using-ai # KYC Upload Checker using AI Use CloudFiles AI with Salesforce flows to automatically detect KYC document uploads (Driving Licenses and Passports), extract key information, and populate related Salesforce fields within seconds. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, we will use CloudFiles AI in conjunction with Salesforce flows to create a KYC upload checker. The system will automatically detect uploads of Driving Licenses and Passports, extract important information, and populate related Salesforce fields — all within seconds. In order to access this test drive, head over to our Salesforce AppExchange listing & click on the 'Try It' button. Enter your information to open the test drive org. Once the test-drive is open, navigate to this article within the Instructions tab of the Test Drive. ## Instructions To test out this feature, follow the simple instructions below. - Go to the 'KYC Uploads' tab and create a new record. (No additional input is required — just save the record.) - Upload KYC Documents (Driving Licenses or Passports) into the native 'Files' section of the record. - Check the AI Results - The respective KYC Documents child records will be created. - Key information like DL/Passport Number, Holder's Name, Expiry and Issue Date will be auto populated in the respective fields. - The Status will be updated as 'EXPIRED' or 'VALID' based on the document's extracted Expiry Date. - The respective Document can also be found in the Files section of the KYC Documents child record Refer to the image below for visual understanding of the above steps - ![](https://media.help.cloudfiles.io/td-kyc-upload-checker-using-ai-sf/01.png) > **Optional: Process External Files** — Optional: Process External FilesIf you want to see how CloudFiles Document Management & Sharing works alongside Document AI to process external files, like sharepoint files:Upload KYC Documents (Driving License or Passport) via the CloudFiles widget in External Files tab of the record. (If you don't see a folder connected in the widget, simply refresh the widget or the page)Check the AI Results The respective KYC Documents child records will be created.Key information like DL/Passport Number, Holder's Name, Expiry and Issue Date will be auto populated in the respective fields and also into the metadata columns of the External File.The Status will be updated as 'EXPIRED' or 'VALID' based on the document's extracted Expiry Date.The respective Document can also be found in the External Files section of the KYC Documents child record. ## Implementation This demo is powered by Salesforce Flows with the following: Salesforce File Attached, Process Document using AI and Query Document/Dataset. CloudFiles Document AI handles classification, summarization and extraction, while a Platform Event triggers updates once processing is complete. ![](https://media.help.cloudfiles.io/td-kyc-upload-checker-using-ai-sf/03.png) > For more information, please refer to Document AI Tutorials. ## Beyond this Test Drive This KYC upload checker is just one example of how CloudFiles AI + Salesforce Flows can transform document handling. The same framework — upload → extract → validate → update — can be applied across industries to create powerful, automated document-driven workflows. Here are some possibilities - - Mass Property Extraction Pull large amounts of information from complex forms such as medical intake forms or patient onboarding documents. - Mass Line Item Extraction from Tables Process invoices, purchase orders, or financial statements to extract hundreds of line items automatically. - Text Detection from Scanned Documents Digitize archives by detecting text in scanned PDFs or image-based files (OCR). - Text Detection in Images Extract information from photographs like business cards, certificates, ID cards, etc. - Text Detection in Handwritten Documents Process handwritten forms, notes, or historical records using handwriting recognition. Here are some real-world applications across Industries: ### Banking & Financial Services – Automated KYC & Compliance Use AI to validate regulatory documents like Passports, IDs, and Proof of Address, and ensure compliance by auto-scheduling renewal reminders. Example: A wealth management firm automatically flags expired IDs and emails reminders to clients before account freeze deadlines. ### Healthcare – Patient Record Intake Process medical forms, insurance cards, or prescriptions uploaded by patients to auto-populate EHR fields. Example: A hospital extracts policy numbers and coverage details from uploaded insurance cards to speed up billing clearance. ### Education – Student Enrolment Validation Extract details from admission forms, transcripts, or IDs uploaded by applicants to update Salesforce Education Cloud. Example: A university validates DOB and ID numbers from scanned student IDs and automatically updates enrolment records. ### Human Resources – Employee Onboarding Validate uploaded tax forms, resumes, and certifications, and ensure documents meet compliance requirements. Example: An HR team cross-checks professional certifications uploaded by new hires against expiration dates, triggering reminders for renewal. ### Legal & Compliance – Contract Clause Extraction Split and validate legal documents like NDAs or agreements, extracting clause-level data for Salesforce Legal Objects. Example: A law firm auto-extracts client signature dates and contract expiry terms from uploaded agreements, ensuring timely renewals. ### Retail & Manufacturing – Vendor Document Verification Process supplier contracts, compliance certificates, or purchase orders and verify them against Salesforce procurement data. Example: A retailer compares line items from a vendor's PO with a previously signed quote, instantly flagging mismatches. With CloudFiles Document AI, every uploaded file becomes more than just an attachment — it becomes actionable data. Whether it's banking compliance, hospital onboarding, HR automation, student enrollment, or vendor management, the ability to extract, validate, and cross-check documents makes Salesforce workflows far more intelligent and reliable. --- # Smart SharePoint Column Updates Using Document AI https://help.cloudfiles.io/salesforce/smart-sharepoint-column-updates-using-document-ai # Smart SharePoint Column Updates Using Document AI CloudFiles Document Management & Sharing integrates with Document AI to automatically classify uploaded external files (like Driving Licenses or Passports) and update their corresponding SharePoint Columns with extracted metadata. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, you'll see how CloudFiles Document Management & Sharing integrates with Document AI to intelligently process external files uploaded via the CloudFiles widget into SharePoint — and automatically update their corresponding SharePoint Columns. The system detects uploads (e.g., Driving Licenses or Passports), classifies the document type using AI, extracts key details like holder name, ID number, and expiry date, and populates the associated SharePoint metadata columns — all within seconds. In order to access this test drive, head over to our Salesforce AppExchange listing & click on the 'Try It' button. Enter your information to open the test drive org. Once the test-drive is open, navigate to this article within the Instructions tab of the Test Drive. ## Instructions To experience this automation in action: - Go to the 'KYC Uploads' tab and create a new record. No additional input is required — just save the record. - Go to the ‘External Files’ tab on the record and Upload KYC Documents (Driving License or Passport) via the CloudFiles widget. This will upload the file directly into the connected SharePoint folder. - Observe AI-Powered Updates - Once uploaded, the documents will be processed using CloudFiles Document AI. - The AI system will classify the file type and update KYC Type column - Extract fields like Holder’s Name, Document Number and Expiry Date and Auto-update SharePoint columns: KYC Type, KYC Number, KYC Holder, KYC Expiry Refer to the image below for visual understanding of the above steps - ![](https://media.help.cloudfiles.io/td-smart-sharepoint-column-updates-using-document-ai-sf/01.png) ## Implementation This demo is powered by Salesforce Flows + Events + Flow Actions. Here's how it works behind the scenes: - File Upload into SharePoint via the CloudFiles widget triggers a File Uploaded event. - This event initiates the Process Document using AI flow action. - Once processing is complete, a Document Processed event is published. - The flow then uses Query Document/Dataset to extract specific data from the file. - Finally, using Set Resource Property, the extracted values are written into the corresponding SharePoint columns. CloudFiles handles both the AI-based document's data extraction and the document management layer, including file uploads to external storage and metadata updates. The below image shows snippets of the flows implemented for this test drive: ![](https://media.help.cloudfiles.io/td-smart-sharepoint-column-updates-using-document-ai-sf/02.png) > For more information, please refer to Document AI Tutorials. ## Beyond this Test Drive This test drive highlights how CloudFiles AI can automatically update SharePoint columns with structured metadata extracted from uploaded files. But the true potential comes when these column updates are treated as live business data that drive visibility, compliance, and automation — directly from SharePoint. Here are some practical applications across industries: ### Banking & Financial Services – KYC & Compliance Columns like KYC Type, Document Number, and Expiry Date are auto-updated. Compliance teams simply filter the “Expiry Date” column to track expiring IDs and schedule reminders. Example: A wealth management firm runs a weekly SharePoint view showing all client IDs expiring in the next 30 days — reducing regulatory breaches. ### Healthcare – Patient & Insurance Processing Insurance card uploads populate columns such as Policy Number and Coverage Expiry. Staff sort by “Coverage Expiry” to ensure policies remain valid before patient billing. Example: A hospital avoids claim denials by flagging expired policies directly from SharePoint without manually opening files. ### Education – Enrollment Document Validation Uploaded student forms auto-fill DOB, Student Name, and Enrollment Number. Admissions staff use columns to quickly check completeness. Example: A university sorts by “Enrollment Number” to identify which student applications are missing required proof of ID. ### Human Resources – Employee Certifications Training or certification documents auto-update Certification Expiry and Employee ID columns. HR uses these fields for proactive compliance. Example: A company monitors “Certification Expiry” to trigger retraining notifications 90 days before licenses lapse. ### Legal & Contract Management – Renewal Tracking Contracts update columns like Client Name, Signed Date, and Renewal Date. Legal teams rely on these columns for renewal pipelines. Example: A law firm builds a SharePoint view filtered by “Renewal Date” to ensure contracts are renegotiated before expiration. ### Procurement & Retail – Vendor Document Verification Invoices and POs populate Vendor Name, PO Reference, and Invoice Amount. Teams can validate consistency directly from columns. Example: A retailer cross-checks “Invoice Amount” against approved PO values to instantly flag mismatches. ### Column Updates as Triggers Beyond visibility, column updates themselves can act as triggers for downstream AI actions: - Expiry Date → Renewal Flows: Updating the “Expiry Date” column automatically triggers renewal workflows or customer reminders. - Invoice Amount → Discrepancy Checks: A populated “Invoice Amount” column kicks off a validation flow against Salesforce order records. - Contract Renewal Date → Task Creation: “Renewal Date” column updates auto-generate follow-up tasks for account managers. With CloudFiles Document AI + SharePoint integration, every uploaded file becomes more than static storage. It becomes structured, actionable data — driving compliance, automation, and intelligent workflows across Salesforce and SharePoint. --- # Split External Files using AI https://help.cloudfiles.io/salesforce/split-external-files-using-ai # Split External Files using AI Explore how CloudFiles Document AI and Document Management, integrated with Salesforce Flows, can automatically split merged or misorganized PDF documents stored in external storage into individual files. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, you will explore how CloudFiles Document AI and Document Management, integrated with Salesforce Flows, can automatically process merged or misorganized PDF documents stored in external storage and intelligently split them into individual files using provided instructions. The setup enables: - Splitting a PDF from external storage (e.g., SharePoint, Google Drive) whether merged or multi-part, based on default or custom instructions - Auto-naming the resulting files based on their contents - Creating child Result Document records linked to each individual split file All of this is fully automated using Document AI and Document Management & Sharing and Salesforce Flows. The test drive takes under a minute to complete. ## Instructions Follow the steps below to test the setup: - Go to the Split or Merge Documents tab and create a new record. No additional input is required — just save it. - Navigate to the External Files tab on the record and upload the merged document using the CloudFiles widget. This will directly upload the file into the connected SharePoint folder. ![](https://media.help.cloudfiles.io/td-split-external-files-using-ai-sf/01.png) - Against the uploaded file, in the dropdown menu, click 'Split with AI'. This will launch a screen flow. ![](https://media.help.cloudfiles.io/td-split-external-files-using-ai-sf/02.png) - In the flow screen, optionally provide any special instructions for splitting. Example: "Split this file into individual sections based on headers or logical parts." ![](https://media.help.cloudfiles.io/td-split-external-files-using-ai-sf/03.png) - Click Finish to confirm the split. ![](https://media.help.cloudfiles.io/td-split-external-files-using-ai-sf/04.png) - Wait a few seconds for the automation to complete. Refresh the page to view updates. 7 - Review AI Output: - The document will be split into multiple child files using AI. - A corresponding Result Document record will be created for each split file. ![](https://media.help.cloudfiles.io/td-split-external-files-using-ai-sf/05.png) - You'll find the split files organised into a new folder titled "Split - {Original File Name}" in external storage. ![](https://media.help.cloudfiles.io/td-split-external-files-using-ai-sf/06.png) - Each file is automatically named based on its content and linked in the External Files tab of the record. ![](https://media.help.cloudfiles.io/td-split-external-files-using-ai-sf/07.png) ## Implementation This solution is powered by Salesforce Flows that invoke the Split Document using AI flow action. CloudFiles Document AI handles: - Detecting content-based split boundaries of the selected external file based on Instructions. - Splitting the External file accordingly into multiple parts. - Naming each file intelligently based on content - Uploading the resulting files into a new folder within the external storage - Creating Result Document child records for each output file ![](https://media.help.cloudfiles.io/td-split-external-files-using-ai-sf/08.png) Additionally, this setup leverages the ability to add custom buttons to the file dropdown or list view in the CloudFiles component. These buttons can be configured to launch either screen flows or auto-launched flows, providing seamless integration and user-triggered automation directly from the file interface. ![](https://media.help.cloudfiles.io/td-split-external-files-using-ai-sf/09.png) > For more details, refer to Splitting multiple combined POs into child objects ## Beyond This Test Drive This test drive shows a basic example—but the Split Document using AI action can be leveraged in various advanced Salesforce automations: ### Screen Flows for Business Users Let agents or partners upload documents directly into connected external storages and supply optional split instructions on-screen. Example: A partner uploads a contract bundle into a external folder through cloudfiles widget. AI splits it by section and names each split contract with the client name. ### Record-Triggered Automations Trigger splitting automatically when an external file is uploaded or when a record meets certain criteria. Example: A case record receives a complaint file with multiple documents. It is auto-split and stored under the appropriate child records. ### Email-to-Record Processing Combine with email ingestion to split documents attached in emails automatically. Example: A vendor emails a combined invoice PDF. Upon ingestion, it is split into separate invoices and linked to the appropriate PO records. ### Community or Partner Portal Uploads Allow external users to upload large files that are split and processed behind the scenes. Example: A vendor portal allows bulk upload of certificates. Each is split and stored under relevant compliance records. ### File Sync from External Storage Trigger splits when files are synced from Google Drive, SharePoint, or Dropbox. Example: A monthly batch of compliance forms synced from SharePoint is automatically split and linked to employee records. ### AI Metadata Extraction After Split Post-splitting, chain another Document AI action to extract metadata from each child file. Example: Split resumes received as a bulk file, then extract candidate name and role applied for from each and map them into Lead records. Let CloudFiles Document AI + Document Management & Sharing + Salesforce work together to make your document processing workflows intelligent, scalable, and fully automated. --- # Split Salesforce Files using AI https://help.cloudfiles.io/salesforce/split-salesforce-files-using-ai # Split Salesforce Files using AI Explore how CloudFiles Document AI, integrated with Salesforce Flows, can automatically process merged or misorganized PDF documents and intelligently split them into individual files using provided instructions. > Kind: Test drive · Updated: Jul 4, 2026 ## Introduction In this test drive, you will explore how CloudFiles Document AI, integrated with Salesforce Flows, can automatically process merged or misorganized PDF documents and intelligently split them into individual files using provided instructions. The setup enables: - Splitting a PDF (whether merged or multi-part) based on custom or default instructions. - Auto-naming the resulting files based on their contents. - Creating child Result Document records linked to each individual split file. All of this is fully automated using CloudFiles Document AI and Salesforce Flow. The test drive takes under a minute to complete. ## Instructions Follow the steps below to test the setup: - Go to the Split or Merge Documents tab and create a new record. No additional input is required — just save it. - Click 'Split File using AI' button on the record, this launches a screen flow. ![](https://media.help.cloudfiles.io/td-split-salesforce-files-using-ai-sf/01.png) - In the screen flow, upload the PDF file you want to split. - If desired, input any specific instructions to guide the AI (e.g., "Split by individual Invoices" or "Separate each contract section"). - Wait a few seconds for automation to trigger. Refresh the page to see the updates. - Review the AI Output: - Cloudfiles AI will split the uploaded document into multiple child files and respective "Result Documents" records are created. ![](https://media.help.cloudfiles.io/td-split-salesforce-files-using-ai-sf/02.png) - Each child file is intelligently named based on its contents and the resultant child file can be found attached to the record. ![](https://media.help.cloudfiles.io/td-split-salesforce-files-using-ai-sf/03.png) ## Implementation This demo is powered by Salesforce Flows with the Split Document using AI flow action. CloudFiles Document AI handles splitting and auto-naming of files based on content. CloudFiles Document AI: - Processes the uploaded PDF. - Detects content-based boundaries. - Splits the file accordingly. - Auto-generates meaningful filenames. The flow automatically creates child Result Document records, each holding a split file. > For more details, refer to Splitting multiple combined POs into child objects ## Beyond This Test Drive This test drive shows a basic example—but the Split Document using AI action can be leveraged in various advanced Salesforce automations: ### Screen Flows for Business Users Let agents or partners upload documents and supply optional split instructions on-screen. Example: A partner uploads a contract bundle. AI splits it by section and names each split contract with the client name. ### Record-Triggered Automations Trigger splitting automatically when a file is uploaded or when a record meets certain criteria. Example: A case record receives a complaint file with multiple documents. It is auto-split and stored under the appropriate child records. ### Email-to-Record Processing Combine with email ingestion to split documents attached in emails automatically. Example: A vendor emails a combined invoice PDF. Upon ingestion, it is split into separate invoices and linked to the appropriate PO records. ### Community or Partner Portal Uploads Allow external users to upload large files that are split and processed behind the scenes. Example: A vendor portal allows bulk upload of certificates. Each is split and stored under relevant compliance records. ### AI Metadata Extraction After Split Post-splitting, chain another Document AI action to extract metadata from each child file. Example: Split resumes received as a bulk file, then extract candidate name and role applied for from each and map them into Lead records. For more advanced configurations, tutorials, and ideas, visit the Document AI Tutorials. Let CloudFiles Document AI + Salesforce work together to make your document processing workflows intelligent, fast, and scalable. --- # Quick Starts (Quick Start · HubSpot) https://help.cloudfiles.io/hubspot/quick-starts # Quick Starts Learn how to integrate CloudFiles with HubSpot using this comprehensive document. It offers an installation guide and three quick start guides to help you master the integration. Discover how to use file and folder actions, workflows, and the CloudFiles widget. > Kind: Quick start · Updated: Jul 8, 2026 This category consists of a few articles that can help you get started with the CloudFiles - HubSpot integration very easily. Simply install the app using the installation guide and then use the various quick starts to become an expert with the integration. Installation guide for CloudFiles HubSpot Integration: This article outlines the installation steps for the CloudFiles HubSpot integration, including how to install the app from the HubSpot Marketplace and access the CloudFiles widget in HubSpot records. Quick Starts By Product - These articles talk about various CloudFiles product capabilities with detailed screenshots. - Doc Management Quickstart: Using cloudfiles as a connector to external storages such as Google Drive, SharePoint etc... - Doc Sharing Quickstart: Using CloudFiles for file sharing and analytics in HubSpot by creating sharing links, configuring security settings, and tracking file performance. - Doc Generation Quickstart: Generate one-click on-brand documents with templates created in native microsoft / google editors. - Doc Automations Quickstart: This articles details CloudFiles' automation capabilities using workflow actions, segment filters, triggers etc... Quick Starts By Role - These articles talk about various CloudFiles capabilities in context of specific types of HubSpot users. - CMS & Marketing Users Quick Start: This article covers how CloudFiles enahances marketing tasks such as hosting files on website, sending in bulk emails, behind hubspot forms etc... - Sales & Service Users Quick Start: This article covers how CloudFiles enhances sales & service functions such as managing files from records, sharing as portals, collecting files etc... - Admin Quick Start: This quick start talks about the various settings that the CloudFiles Admin has control over. --- # Installation guide for CloudFiles HubSpot Integration https://help.cloudfiles.io/hubspot/quJO-installation-guide-for-cloudfiles-HubSpot-integration # Installation guide for CloudFiles HubSpot Integration Install CloudFiles from the HubSpot Marketplace and get started with the product- and role-based quick start guides. > Kind: Quick start · Updated: Jun 4, 2026 ## Steps to Install CloudFiles is available on the app marketplace and can be installed using the standard app installation process. In order to install the app, you only need to follow some quick steps - 1. **Open the HubSpot Marketplace listing** — Go to Cloudfiles's listing page on HubSpot Marketplace (or just search 'CloudFiles' on the marketplace). 2. **Click Connect** — Click the "Connect" button on top right of the page (or click on this link). 3. **Log in with your HubSpot admin account** — This will open up the HubSpot Login Page. Login with you HubSpot Administrator account. 4. **Connect the app** — Following page will be shown. Click the "Connect App" button to finish installation. ![](https://media.help.cloudfiles.io/qs-install-hs/01.png) Now that CloudFiles is installed in your HubSpot, you can start using it. To get started quickly, we provide various quick start guides that talk about incrementally advanced features. Refer to these guides in sequence to become a HubSpot - CloudFiles integration expert. ## Quick Starts By Product These articles talk about various CloudFiles product capabilities with detailed screenshots. - Doc Management Quickstart: Using cloudfiles as a connector to external storages such as Google Drive, SharePoint etc... - Doc Sharing Quickstart: Using CloudFiles for file sharing and analytics in HubSpot by creating sharing links, configuring security settings, and tracking file performance. - Doc Generation Quickstart: Generate one-click on-brand documents with templates created in native microsoft / google editors. - Doc Automations Quickstart: This articles details CloudFiles' automation capabilities using workflow actions, segment filters, triggers etc... ## Quick Starts By Role These articles talk about various CloudFiles capabilities in context of specific types of HubSpot users. - CMS & Marketing Users Quick Start: This article covers how CloudFiles enahances marketing tasks such as hosting files on website, sending in bulk emails, behind HubSpot forms etc... - Sales & Service Users Quick Start: This article covers how CloudFiles enhances sales & service functions such as managing files from records, sharing as portals, collecting files etc... - Admin Quick Start: This quick start talks about the various settings that the CloudFiles Admin has control over. Once you are done with these, you can also go to the Features section explore the features in detail or head over to the Tutorials section to learn how to build various use cases using CloudFiles. To talk to us, you can email us at support@cloudfiles.io or chat with us using the chat bubble at the bottom right of the screen. --- # Doc Management Quickstart https://help.cloudfiles.io/hubspot/doc-management-quickstart # Doc Management Quickstart Learn how to use CloudFiles as a file connector for HubSpot with this comprehensive quick start guide. > Kind: Quick start · Updated: Jun 4, 2026 In this first quick start, we show how the CloudFiles Document Management product can be used as a file connector for HubSpot. A file connector is something that can provide live access to your files that may be sitting in some external storage (such as Google Drive, SharePoint, OneDrive, Box, Dropbox, AWS S3, Azure, CloudFiles or HubSpot storage) from your HubSpot records (standard as well as custom objects). CloudFiles offers a file mirroring feature and some HubSpot native components to connect any type of file to HubSpot records. In the article below, we talk about - - Accessing external storages from HubSpot records using CloudFiles components - Associating files & folders to records for later access - Operating on files & folders from HubSpot with instant 2-way sync These steps will give you a basic understanding of how to use the CloudFiles Document Management product in HubSpot. Check out the What's Next section at the bottom to see what else you should read about CloudFiles. ## Installing CloudFiles in HubSpot If you haven't already done so, make sure CloudFiles is installed in your HubSpot from the HubSpot marketplace. This only takes a couple of minutes and you can follow the simple steps in our article on Installation guide for CloudFiles HubSpot Integration. ## Accessing CloudFiles from Records CloudFiles is available on HubSpot records through two components: the App Card and the Widget. These components integrate external storage libraries and allow files/folders to be managed directly within standard as well as custom objects. ### CloudFiles App Card The CloudFiles App Card is integrated into HubSpot across all standard (e.g. contacts, companies, deals etc...) as well as custom objects. It allows you to connect external storage platforms like SharePoint, Google Drive, OneDrive, Box, Dropbox, or AWS S3. Once connected, you can view, download, rename, move, or delete files directly from the record. The card appears in the middle section of the HubSpot record, either in the standard tabs or in any custom tabs.- The CloudFiles card is not added by default on the record pages. To add the card, go to any record, click on the customize button on the top right, open the default view and add the card to an existing tab / new tab. For detailed instructions and screenshots, refer to the configuration section of the CloudFiles Connected Folder Widget article. > To enable support of CloudFiles app card & workflows for your custom objects, contact us. ![](https://media.help.cloudfiles.io/qs-doc-mgmt-hs/01.png) ### CloudFiles Widget The CloudFiles widget is available on the right sidebar of all HubSpot records. It works the same way as the app card on all record types. ![](https://media.help.cloudfiles.io/qs-doc-mgmt-hs/02.png) ## Accessing Content Library The CloudFiles content library is your single source of truth for all your files & folders, no matter where they are. The library provides access to CloudFiles storage as well as mirror storage support for Google Drive, OneDrive, SharePoint, Box, Dropbox, AWS S3, etc... The content library can be accessed through a couple of ways depending on whether you want to use it from a HubSpot record or not. The image and details below summarise these - Using CloudFiles App Card on HubSpot Record - Open any HubSpot record and use the CloudFiles App Card. Click "Select File/Folder" to open the Content Library. From here, you can browse or upload files, attach them to the record, preview, download, or manage them. ![](https://media.help.cloudfiles.io/qs-doc-mgmt-hs/03.png) Using CloudFiles Widget on HubSpot Record - On any record (standard or custom), find the CloudFiles Widget in the sidebar. Click on "Add" to open the Content Library. You can then navigate your storage, browse files/folders, and perform actions like upload, rename, or delete. ![](https://media.help.cloudfiles.io/qs-doc-mgmt-hs/04.png) Using CloudFiles Web-app - You can also access the Content Library from the CloudFiles Web App by clicking the CloudFiles hyperlink in the widget. The web app is useful if you prefer working outside HubSpot. You can manage all your files here, and the changes and analytics are still visible inside HubSpot. ![](https://media.help.cloudfiles.io/qs-doc-mgmt-hs/05.png) ## Connecting your Cloud Storage Using the content library dialog, you can easily connect any existing cloud storage and instantly access those files. This content mirroring currently works with HubSpot File Storage, Google Drive, OneDrive, SharePoint, Box, Dropbox, Amazon AWS S3, Microsoft Azure and a few more options. To connect you library, follow the simply steps below - - Locate the library selector dropdown and choose your desired cloud storage - Click on the Login to Cloud Storage button. This is a one-time process and is NOT required for HubSpot File Storage and CloudFiles Native Storage. - Standard Cloud Storage login will follow in a new tab. Complete the login. - The tab should auto close and you should come back to HubSpot. - Your files should start showing in the content library dialog box. These steps are also shown in the graphic below - ![](https://media.help.cloudfiles.io/qs-doc-mgmt-hs/06.gif) ## Associating files & folders to records Files and folders from the Content Library can be linked to HubSpot records through the CloudFiles App Card or the CloudFiles Widget. When using the App Card, click the "Select File/Folder" button to open the Content Library. From there, choose the files or folders you want to associate with the record. Once linked, they will appear on the card, and if a folder is selected, its contents can be viewed and managed directly from within the card. This is shown in the graphic below: ![](https://media.help.cloudfiles.io/qs-doc-mgmt-hs/07.gif) When using the Widget, click the "Add" button to open the Content Library. Select the required files or folders using the checkboxes and add them to the record. These will then appear as tiles inside the widget. ![](https://media.help.cloudfiles.io/qs-doc-mgmt-hs/08.gif) ## File & folder Operations from Card When a file or folder is associated with a record through the CloudFiles App Card, it can be managed directly from the card. - For folders, you can browse their contents, open them in the connected storage (such as Google Drive or SharePoint), share, rename, or delete them. - For files, you can open them in the connected storage, download, preview, share, rename, replace, move, delete, or disconnect them from the record while keeping them in storage. ![](https://media.help.cloudfiles.io/qs-doc-mgmt-hs/09.gif) ## What Next? You can go back to the Quick Starts article and check out our other quick starts on doc sharing, doc automations etc... or the role wise quick starts. You can also go to the Features section explore the features in detail or head over to the Tutorials section to learn how to build various use cases using CloudFiles. Need help? Book time with our team of experts. --- # Doc Sharing Quickstart https://help.cloudfiles.io/hubspot/doc-sharing-quickstart # Doc Sharing Quickstart Learn how to use CloudFiles in HubSpot with this comprehensive quick start guide covering doc sharing and analytics capabilities. > Kind: Quick start · Updated: Jun 4, 2026 In this quick start, we cover some basic sharing & analytics capabilities that CloudFiles enables on top of your existing files. Through CloudFiles, you can create links for files, folders & datarooms. You can also enable various security settings on these links. When your prospects or customers view these links, you get analytics in your HubSpot. CloudFiles Doc Sharing capabilities can be used in various ways. - Sales & service users prefer operating from HubSpot records such as deals & tickets on a daily basis. They can use the doc sharing capabilities from the records themselves using the CloudFiles App Card and Sidebar Widget. - Marketing teams prefer to have a unified view of their entire content library, create multiple links for their collateral pieces, distribute these links through emails & website & then collecting reportable analytics. For these users, using the CloudFiles Web-App Dashboard is the ideal way to enjoy the doc sharing capabilities. In order to properly utilize this quick start, first decide whether you need it for sales / service users (i.e. from records) or for marketing users (i.e. from a dashboard). You might need both. Based on your decision, go to one of the following articles - - Doc Sharing From Records Quickstart - Useful for sales & service team who want to share & collect analytics from HubSpot records. - Doc Sharing From Dashboard Quickstart - Useful for marketing teams who want a consolidated view of files & analytics. By referring the correct article, you will get a complete understanding of how to use the app for you use-case. Need help? Book time with our team of experts. --- # Doc Sharing From Records Quickstart https://help.cloudfiles.io/hubspot/doc-sharing-from-records-quickstart # Doc Sharing From Records Quickstart A quickstart guide showing sales/service users how to access CloudFiles from HubSpot records, associate files/folders/datarooms, create and configure sharing links, and view files and analytics as a customer would. > Kind: Quick start · Updated: Jun 4, 2026 In this quick start, we will cover some basic doc sharing capabilities of CloudFiles in context of sales / service users. These users prefer operating from standard or custom HubSpot records such as deals, tickets, contacts etc... on a daily basis. They can use the doc sharing capabilities from the records themselves using the CloudFiles App Card and Sidebar Widget. In the article below, we talk about - - Accessing CloudFiles from HubSpot records using App Card or Sidebar widget. - Associating files, folders or datarooms to records - Creating sharing links for the above resources & configuring those links - Viewing the file as a customer & checking analytics These steps will give you a basic understanding of how to use the CloudFiles Document Sharing product in HubSpot as a sales / service user. Check out the What's Next section at the bottom to see what else you should read about CloudFiles. ## Installing CloudFiles in HubSpot If you haven't already done so, make sure CloudFiles is installed in your HubSpot. This only takes a couple of minutes and you can follow the simple steps in our article on Installation guide for CloudFiles HubSpot Integration. ## Accessing CloudFiles from Records You can access CloudFiles from standard as well as custom object records using one of the following two ways. Both of these work for all the 4 record types - - Using the CloudFiles App Card - A detailed card view that can be added to one of the standard or custom tabs in the center of the HubSpot record screen view. - Using the Sidebar Widget - Appears in the right sidebar of each record. Is enabled by default on all records. The following sub-sections talks about these in detail. ### CloudFiles App Card The CloudFiles App Card is integrated into HubSpot records and lets you connect external storage libraries. It can be added to any standard or custom tabs that appear in the center of the record screen layout on HubSpot. To add the card, go to any record, click on customize button on top right, open the default view and add the card to an existing tab / new tab. For detailed instructions and screenshots, refer to the configuration section of the CloudFiles Connected Folder Widget article. ![](https://media.help.cloudfiles.io/qs-doc-sharing-records-hs/01.png) ### CloudFiles Widget The CloudFiles widget is available on the right sidebar of all standard or custom object records. In case you don't see the widget on any of your records, check out our FAQ on I cannot see the CloudFiles widget in HubSpot. The widget can be used to associate multiple files and folders with the record, perform operations on them, share & track them and a lot more. We will cover this functionality below. ![](https://media.help.cloudfiles.io/qs-doc-sharing-records-hs/02.png) ## Associate files, folders or datarooms In order to share any resource(s), we first need to associate the resource(s) to the record. You can associate a file, folder or datarooms to a record using one of the following ways - ### Associating files & folders To associate files or folders, simply click on the "Select File / Folder" button in the card or the "Add" button in the widget to open the content library. You will have free access to the CloudFiles & HubSpot storage through this dialog box. Create, upload or locate the respective files & folders, and associate them to the record as shown in the GIF below. > You can use the doc sharing product with external storages as well if you have purchased doc management product. Refer to the Doc Management Quickstart on how to connect external storages and associate files & folders to records. The process is similar. As soon as the file or folder is associated, it will show up, both in the card as well as in the sidebar. Check the GIF below. ![](https://media.help.cloudfiles.io/qs-doc-sharing-records-hs/03.gif) ### Associating Datarooms To associate a dataroom, open the content library dialog as shown above. Then switch to the datarooms view. Follow the on-screen instructions to create your dataroom. Once created, you can then associate files & folders from any storage(s) to the dataroom. As soon as the dataroom is associated, it will show up in the sidebar widget. We currently do not show dataroom attachments in the app card however this is on our roadmap. > We currently do not show dataroom associations on the app card. You can access and operate datarooms through the sidebar widget only. We will soon add dataroom support on app card. ![](https://media.help.cloudfiles.io/qs-doc-sharing-records-hs/04.gif) ## Creating sharing links There are multiple ways to create a sharing link. You can either do it while associating the resource to the record or using the app card or sidebar widget. Creating link using App Card - Simply browse to the file or folder that you want to create a sharing link for and click on the share option in the actions dropdown. ![](https://media.help.cloudfiles.io/qs-doc-sharing-records-hs/05.gif) Creating link using sidebar widget - Click on the actions dropdown button and select the 'Share' or 'Get Link' option to create the sharing link for the file, folder or dataroom. ![](https://media.help.cloudfiles.io/qs-doc-sharing-records-hs/06.gif) Creating link while associating resource - When you select a file, folder or dataroom in the content library dialog and add it to the record, you can select a checkbox at the bottom to simultaneously create the link of the associated resource. This is shown in the steps below. ![](https://media.help.cloudfiles.io/qs-doc-sharing-records-hs/07.gif) ## Configuring sharing links Once the link has been created, CloudFiles will automatically open the link settings dialog. You can also access this dialog using the Get Link action in the card & widget. This dialog can be used to set various security settings such as email collection, password protection, download control etc... ![](https://media.help.cloudfiles.io/qs-doc-sharing-records-hs/08.gif) ## Viewing file as customer Now that your file is uploaded and link is configured, open that link in a browser window. You will be sharing this link with your clients. When you access the link, this is exactly what your clients will see. You can also open the link in anonymous tab to test various security settings. The file shows up in the browser using our proprietary file viewer. This viewer supports all types of readable and watchable files including PDFs, PPTs, Excels, Docs, Images, Videos etc... Other types of non-rendered files are downloaded on link access. ![](https://media.help.cloudfiles.io/qs-doc-sharing-records-hs/09.png) Additionally, you can also 'Preview' the file. This does not apply the security settings and does not collect analytics. Previewing is for internal use only and these links should not be shared with the customers. ## View Analytics To view file analytics, locate the 'Analytics' action in the Actions dropdown against the resource in the app card or the sidebar widget. Additionally, the analytics should also show up on the timeline activity of the record if the CloudFiles timeline activity has been enabled. Both of these are shown in the graphic below. ![](https://media.help.cloudfiles.io/qs-doc-sharing-records-hs/10.png) ## What Next? You can refer to the other doc sharing quick start on using Dashboard for marketers at Doc Sharing From Dashboard Quickstart. You can go back to the Quick Starts article and check out our other quick starts on doc auatomations, doc management etc... or the role wise quick starts. You can also go to the Features section explore the features in detail or head over to the Tutorials section to learn how to build various use cases using CloudFiles. --- # Doc Sharing From Dashboard Quickstart https://help.cloudfiles.io/hubspot/doc-sharing-from-dashboard-quickstart # Doc Sharing From Dashboard Quickstart A quick start guide covering how marketing users can access their content library, create and configure sharing links, view files as a customer, check analytics, and distribute links using the CloudFiles Web-App Dashboard. > Kind: Quick start · Updated: Jun 4, 2026 In this quick start, we will cover some basic doc sharing capabilities of CloudFiles in context of marketing users. These users prefer to have a unified view of their entire content library, create multiple links for their collateral pieces, distribute these links through emails & website & then collecting reportable analytics. For these users, using the CloudFiles Web-App Dashboard is the ideal way to enjoy the doc sharing capabilities. In the article below, we talk about - - Accessing the entire content library from the CloudFiles Webapp Dashboard - Creating sharing links for files, folders & datarooms & configuring those links - Viewing the file as a customer & checking analytics - Distributing the link using email, website, social or other ways. - Segmenting, Scoring & Reporting on the analytics in HubSpot These steps will give you a basic understanding of how to use the CloudFiles Document Sharing product in HubSpot as a marketing user. Check out the What's Next section at the bottom to see what else you should read about CloudFiles. ## Installing CloudFiles in HubSpot If you haven't already done so, make sure CloudFiles is installed in your HubSpot. This only takes a couple of minutes and you can follow the simple steps in our article on Installation guide for CloudFiles HubSpot Integration. ## Accessing Content Library from WebApp Dashboard Once CloudFiles is installed in your HubSpot, there are multiple ways to access the WebApp dashboard. - You can directly login at https://app.cloudfiles.io using the same email registered in your hubspot instance. - You can go to a contact, company, deal or ticket record and click on the CloudFiles hyperlink at the bottom of the sidebar widget. These steps have been detailed with screenshots in How to go to the CloudFiles App Dashboard? You can navigate to Document Sharing tab > Libraries sidebar to view & maintain your content library. You can also create & access your datarooms using the respective option on the sidebar. ![](https://media.help.cloudfiles.io/qs-doc-sharing-dashboard-hs/01.png) Note that the doc sharing plans offer free CloudFiles & HubSpot storage integrations. External storages such as Google Drive, SharePoint are available with Doc Management subscriptions. You can try all storages during trial. ## Creating sharing links To create a sharing link for a file, folder or dataroom, simply upload or browse to the specific resource and use the 'Share' action from the dropdown. The following GIF shows how to create a link for a folder. ![](https://media.help.cloudfiles.io/qs-doc-sharing-dashboard-hs/02.gif) You can also create multiple links for your files, folders and datarooms. To create multiple links, click on the respective resource. This opens the resource detail page which shows a list of all the links associated to the file. Check the GIF below to see this in action. ![](https://media.help.cloudfiles.io/qs-doc-sharing-dashboard-hs/03.gif) ## Configuring sharing links Once the link has been created, CloudFiles will automatically open the link settings page. This page can be used to set various security settings such as email collection, password protection, download control etc... ![](https://media.help.cloudfiles.io/qs-doc-sharing-dashboard-hs/04.png) ## Viewing file as customer Now that your link is configured, open that link in a browser window. You will be sharing this link with your clients. When you access the link, this is exactly what your clients will see. You can also open the link in anonymous tab to test various security settings. The file shows up in the browser using our proprietary file viewer. This viewer supports all types of readable and watchable files including PDFs, PPTs, Excels, Docs, Images, Videos etc... Other types of non-rendered files are downloaded on link access. ![](https://media.help.cloudfiles.io/qs-doc-sharing-dashboard-hs/05.png) Additionally, you can also 'Preview' the file. This does not apply the security settings and does not collect analytics. Previewing is for internal use only and these links should not be shared with the customers. ## Checking Analytics To view file analytics, locate the 'Analytics' section in link details screen on the webapp dashboard. Additionally, non-anonymous analytics is also pushed to HubSpot as timeline events and be consumed by marketers using various ways. We will talk about this later in this article. ![](https://media.help.cloudfiles.io/qs-doc-sharing-dashboard-hs/06.png) ## Distributing Links Now that your link is configured and you are confident that analytics is being collected on the link, you are ready for mass distribution of the link. There are various ways in marketers use CloudFiles links, each pertaining to a unique distribution channel, and each with its own best analytics collection practices. - Sharing collateral on web - Various ways of tracking analytics & collecting leads when sharing collateral thorugh website, forms, social media, ads etc... - Sending bulk emails - Personalizing file, folder & dataroom sharing link to collect analytics integrated with HubSpot. - Lead segmentation & scoring - Using lists, workflows & properties for segmentation, scoring & other marketing analytics. - Custom reporting dashboard - Using CloudFiles' File View Custom Object to create custom reports & dashboards in HubSpot. - Improving sales team consumption - Various strategies to get Sales team to use centralized content and collect reportable analytics. Check our article on CMS & Marketing Users Quick Start to learn more about these startegies and get more help article links. ## What Next? You can refer to the other doc sharing quick start on using Dashboard for marketers at Doc Sharing From Records Quickstart. You can go back to the Quick Starts article and check out our other quick starts on doc auatomations, doc management etc... or the role wise quick starts. You can also go to the Features section explore the features in detail or head over to the Tutorials section to learn how to build various use cases using CloudFiles. --- # Doc Generation Quickstart https://help.cloudfiles.io/hubspot/doc-generation-quickstart # Doc Generation Quickstart Learn how to install the CloudFiles Word add-in and use the CloudFiles Doc Gen App Card to create, publish, and generate personalized HubSpot documents. > Kind: Quick start · Updated: Jun 4, 2026 In this quick start guide, you will learn how to integrate HubSpot data into your document workflow using the CloudFiles Word add-in and CloudFiles Doc Gen App Card. You will discover how to install the CloudFiles Word add-in, create and publish personalized templates, and manually generate documents in your desired format. This article is divided into the following sections - - Insert Doc Generation Card: Quickly insert on standard or custom HubSpot objects to generate documents. - Install CloudFiles Word Add-in: The add-in allows you to create and manage document templates directly within Microsoft / Google editors. - Create Template: Leverage HubSpot properties to build templates in Microsoft / Google editors. - Publish Template: Understand the process of publishing your templates within HubSpot, making them available for document generation. - Generate Documents: Learn how to manually generate documents using your published templates. - Coming Soon: This section talks about what else we are gonna be adding in our doc generation product soon. Let's look into each section one by one - ## 1 - Insert Doc Generation Card The Doc Generation App Card is integrated into HubSpot across all standard or custom object records. It allows you to see a list of all your templates and generate & download documents manually from HubSpot records. The card appears in the middle section of the HubSpot record, either in the standard tabs or in any custom tabs. The CloudFiles card is not added by default on the record pages. To add the card, go to any record, click on the customize button on the top right, open the default view and add the card to an existing tab / new tab. [Watch video](https://youtu.be/vU2uvQn5VKY) ## 2 - Install CloudFiles Word add-in The CloudFiles Word add-in facilitates the integration of CloudFiles with your Hubspot instance, enabling you to create and design templates that incorporate HubSpot properties. This powerful tool streamlines the process of merging HubSpot data into documents, making it easier to generate consistent and accurate templates directly from Microsoft Word. To add the CloudFiles Word add-in to your Microsoft Word application, start by launching Microsoft Word on your PC. The follow the steps below - - Navigate to the "Home" tab and click on "Add-ins" to explore available options. - In the Add-ins window, select "+ More Add-ins" to open the "Office Add-ins" window, then click on "Microsoft AppSource" to be redirected to appsource.microsoft.com. - In the search bar, type "CloudFiles" and browse the results to locate the CloudFiles Add-in. - Click "Get it now" to install the add-in. Once the installation is complete, open Word to check the new add-in. - In the "New Office Add-in" sidebar, click "Allow and Continue" to launch the CloudFiles Word add-in, ensuring it's ready for use with your HubSpot data. > **Note** — Please ensure to use your https://hubspot.cloudfiles.io/ credentials when logging into the CloudFiles Add-in Refer to the video below to have a visual understanding of these steps - [Watch video](https://youtu.be/0Kzyf8FzEhI) ## 3 - Create Template You can create a template for any HubSpot object. Using various actions, you can insert object properties, related data, and custom resources. Additionally, you can add pictures, tables, and set conditions for content insertion, as well as specify the title of the generated documents. Once the CloudFiles Word Add-in is installed and the HubSpot instance is connected, you can start building a template for a selected object. To get started, you must select your primary resource, i.e., the Master Object for which you wish to build the template. In the CloudFiles Add-in sidebar, select HubSpot as the platform and the HubSpot Object as the Master Resource. After clicking 'Submit,' you will be directed to the next stage of selecting actions and utilizing resources. Refer to the GIF below to have a visual understanding of this process - ![](https://media.help.cloudfiles.io/qs-doc-gen-hs/01.gif) ## 4 - Publish Template After building a template and reviewing it, the final step is to publish the template. Publishing makes the template available in your HubSpot instance for document generation on the specified object. To begin, navigate to the 'Publish' stage by clicking on 'Publish' in the 'Stage Progress Bar'. You will then need to choose your publishing option: either check the 'Publish as a New Template' checkbox to publish it as a new template for the object, or check the 'Select an existing template' checkbox and choose an existing template from the drop-down to update an existing one. ![](https://media.help.cloudfiles.io/qs-doc-gen-hs/02.gif) Once you've made your selection, click 'Publish'. A pop-up message confirming 'Successfully Created a Template' will appear, indicating the template has been created. To verify the template, you can check the newly created or updated template from the 'CloudFiles Doc-Gen' app card on the object's page or from the 'Document Generation' tab of the CloudFiles app. ![](https://media.help.cloudfiles.io/qs-doc-gen-hs/03.png) ## 5 - Generate Documents from Doc Gen Card Once the CloudFiles Doc Gen card is added to the record page and the template has been published, you can start generating documents in either DOCX or PDF format, which will be automatically downloaded upon generation. To manually generate a document, navigate to any HubSpot record of the specified object type and locate the app card. Click the drop-down menu next to the template you want to use and select either 'Generate DOCX' or 'Generate PDF' for the desired document format. The document generation process takes a moment. Once completed, you can download the generated document. ![](https://media.help.cloudfiles.io/qs-doc-gen-hs/04.png) ## 6 - Coming Soon Doc Generation has been launched recently by CloudFiles. Following things are coming soon - - More help resources - We wil be adding many articles to illustrate how to use this product. - Automations - Generate documents automatically and in bulk using HubSpot workflows. - Better templating - Support for HubSpot products, better data addition options. - Doc Management Integration - Store your generated documents neatly in external storages. - Doc Sharing Integration - Share your generated documents using CloudFiles links and collect useful analytics. - Template Library - Use pre-built templates. Just download, connect & use. ## What's Next ? You can go back to the Quick Starts article and check out our other quick starts on doc sharing, doc automations etc... or the role wise quick starts. You can also go to the Features section explore the features in detail or head over to the Tutorials section to learn how to build various use cases using CloudFiles. --- # Doc Automations Quickstart https://help.cloudfiles.io/hubspot/doc-automations-quickstart # Doc Automations Quickstart Learn how CloudFiles can automate your HubSpot workflows, with automation examples for the connector, sharing, and analytics use-cases, including creating folders, attaching files, generating sharing links, and setting link security. > Kind: Quick start · Updated: Jun 4, 2026 CloudFiles offers a number of file automations capabilities for HubSpot users. Using the app, you can filter lists, trigger workflows, use workflow actions and much more to automate your processes. In this article we focus on some of the automation capabilities related to the connector, sharing & analytics use-cases we discussed in the previous quick starts. There is a whole lot more documentation and possibilities with these automations. ## Connector related automations CloudFiles connector quick start covered how you can easily access your external files from HubSpot records using the CloudFiles widget and content library dialog. We also associated a file and performed some operations using these components. In this section we cover some basic automation support examples for this. One of the most common use-cases is to create a folder and associate it to a HubSpot record when the record is created or updated in a certain way. E.g. create a deal folder in Google Drive and associate it to the deal when it's stage changes to a particular value. This use-case can be easily enabled using HubSpot workflows and CloudFiles' workflow actions. Create a workflow and trigger it based on your entry condition, then use the two actions below - ### Create Folder This action lets you specify some parameters such as target storage, destination folder, newly created folder's name etc... Using these you can customize how you want your folder organization to look. You can also use this action multiple times to create sub-folder hierarchies. In the graphic below we show how this action looks. For details on how to use this action, refer to the detailed guide on Create Folder Action. ![](https://media.help.cloudfiles.io/qs-doc-automations-hs/01.png) ### Create Attachment This action lets you attach a folder or file to the record. An attachment is the same as association i.e. the tile that is created when you associate a file or folder manually to a HubSpot record through the content library dialog. This action is able to create that tile automatically so that it's ready for use by your team. In the graphic below we show how this action looks. For details on how to use this action, refer to the detailed guide on Create Attachment Action. ![](https://media.help.cloudfiles.io/qs-doc-automations-hs/02.png) ## Sharing related automation In this section, we talk about some of the workflow actions that can help automatically create sharing links and set security settings on those links. These enable a host of sharing related automations for our users. ### Share Attachment This action can create a sharing link for an already existing file or folder attachment (association). This action is most often used along with Create Attachment action. The final result of this action is the same as clicking the 'Share' button in the Actions dropdown of a file or folder association on the CloudFiles widget which ends up creating a CloudFiles link for the resource. In the graphic below we show how this action looks. For details on how to use this action, refer to the detailed guide on Share Attachment Action. ![](https://media.help.cloudfiles.io/qs-doc-automations-hs/03.png) ### Update Link Settings This action provides a number security and general link settings that can be applied through automation. This is the same as manually applying these settings using the Get Link dialog. Tis action can be used to enforce sharing policies on the content. In the graphic below we show how this action looks. For details on how to use this action, refer to the detailed guide on Update Link Settings Action. ![](https://media.help.cloudfiles.io/qs-doc-automations-hs/04.png) ## Analytics related automations In this section we talk about some analytics related automations. CloudFiles sends a number of events to HubSpot when certain engagement is seen on your shared collateral. These events also carry a number of data points with them which can be used to further refine your engagement automations. The events can be consumed using HubSpot static and dynamic lists, workflow triggers and record properties. In the graphic below, we provide a basic example of the File Viewed event being used in HubSpot workflow trigger. Other events such as File received, resource attached etc... enable other automations as well. You can read more about these types of automations in our help article on Workflow Triggers & List Filters. ![](https://media.help.cloudfiles.io/qs-doc-automations-hs/05.png) ## What Next? You can go back to the Quick Starts article and check out our other quick starts on doc sharing, doc management etc... or the role wise quick starts. You can also go to the Features section explore the features in detail or head over to the Tutorials section to learn how to build various use cases using CloudFiles. Need help? Book time with our team of experts. --- # CMS & Marketing Users Quick Start https://help.cloudfiles.io/hubspot/cms-and-marketing-users-quick-start # CMS & Marketing Users Quick Start This article outlines strategies HubSpot marketers can use to improve content performance using CloudFiles, covering web collateral sharing, bulk emails, lead segmentation, reporting, and sales team consumption. > Kind: Quick start · Updated: Jun 4, 2026 HubSpot Marketing & CMS Hubs are built for marketers. You can run various business marketing operations such as mass emailing, social media, website etc.. using these products. CloudFiles integrates with many of these features, providing HubSpot marketers easy ways to generate & consume file analytics in HubSpot. This article outlines some of the strategies that HubSpot marketers can use to improve there content performance. Each of the sections below provides a brief overview of a key HubSpot marketing use-case that is enabled using CloudFiles. Each section also links to other articles that cover features in detail. Here is a quick summary of what all is covered in this article - - Sharing collateral on web - Various ways of tracking analytics & collecting leads when sharing collateral thorugh website, forms, social media, ads etc... - Sending bulk emails - Personalizing file, folder & dataroom sharing link to collect analytics integrated with HubSpot. - Lead segmentation & scoring - Using lists, workflows & properties for segmentation, scoring & other marketing analytics. - Custom reporting dashboard - Using CloudFiles' File View Custom Object to create custom reports & dashboards in HubSpot. - Improving sales team consumption - Various strategies to get Sales team to use centralized content and collect reportable analytics. ## Sharing Collateral on Web HubSpot provides various tools to build web pages and landing pages. Marketers often need to share individual and groups of files through various web-based channels. These channels can include website, landing pages, behind form walls, social media, ads etc... In this section we talk about how CloudFiles can help with these specific use cases. ### Creating links for your collateral Use the CloudFiles WebApp Dashboard to manage your content library. You can create single or multiple links for individual pieces or groups of collateral using the file, folder, dataroom sharing capabities of CloudFiles. Once you have created these links, you can configure different settings on these. Once the links are ready, you can host them on your website, either as hyperlinks or embedded. Refer to the Doc Sharing From Dashboard Quickstart for detailed steps and screenshots on how to use the CloudFiles WebApp Dashboard as a HubSpot marketer. Check the article on File and Folder Sharing Article for various link creation and sharing options. ![](https://media.help.cloudfiles.io/qs-cms-marketing-hs/01.png) ### Sharing Anonymous collateral on website By default the links you create for your files are ungated. Ungated Links which do not have any email gating enabled will be directly accesible with a simple click. You can use the holistic analytics available in the CloudFiles dashboard to figure out drop points and optimize your content. Your clients are directed to CloudFiles' proprietary file viewer when they open the links. This file viewer can show files, folders as well as datarooms. Check out article on Collect anonymous analytics on documents for more details. For details on what type of analytics is collected, check the article on Understanding Engagement Metrics and Drill-Down Analytics. ![](https://media.help.cloudfiles.io/qs-cms-marketing-hs/02.png) ### Sharing Gated collateral using Email Wall You can put an email wall before the CloudFiles links. You can also enable email authentication using an OTP. Additionally, you can define an allow or block list of domains & emails to restrict access. You can read more about it in the link security settings article. Whenever a gated link is accessed, any analytics associated to it is pushed into your HubSpot and associated with the right contact. If the contact does not exists, CloudFiles creates one for you. You can check more about this in Auto Create Contacts from File Views. ![](https://media.help.cloudfiles.io/qs-cms-marketing-hs/03.png) ### Sharing Gated collateral using HubSpot Forms Instead of using the CloudFiles email wall (which is only capable of collecting emails), you can use HubSpot forms as well to collect detailed analytics on your collateral. Simply create a form and collect email in it. Then, once the form is filled, simply re-direct the person to a gated or ungated link. CloudFiles provides HubSpot cookie integration such that it reads the viewer information in your HubSpot cookie. If the email is available in the cookie, CloudFiles email wall is not shown. The analytics is still pushed to the right HubSpot contact. Note that the above feature is available on white-labelled links only. Moreover, your website should be hosted on HubSpot for this to work. You can read more about this feature here. ### Social Media & Ads You can use similar strategies as outlined in the sections above to collect analytics from content pieces shared using Social and Ads. Use CloudFiles links to share the collateral and use appropriate security settings to collect analytics and push it to HubSpot. ## Sending Files in Bulk Emails If you are sending out mass marketing emails, the best way is to create one file, folder or dataroom link per campaign / audience. Then use this link in your marketing email template. In HubSpot you can add a personalization parameter to the end of the link. This way, any analytics collected is automatically pushed into HubSpot and associated to the HubSpot contact. Refer to our tutorial on E-mail Attachment Tracking for more information. ![](https://media.help.cloudfiles.io/qs-cms-marketing-hs/04.png) ## Lead Segmentation & Scoring Use HubSpot Segments (previously HubSpot Lists) along with CloudFiles filters to create lists of contacts who have viewed your collateral. Use various filter parameters to create refined lists and use in your nurturing processes. ![](https://media.help.cloudfiles.io/qs-cms-marketing-hs/05.png) The above filters also available as triggers in workflows. Thus, you can create workflows with custom scoring logics and trigger them when views happen on CloudFiles documents. This also enables you to create notifications for sales teams and various other automated processes. ![](https://media.help.cloudfiles.io/qs-cms-marketing-hs/06.png) You can use other things, such as data proeprties that CloudFiles maintains on deals, tickets, contacts & companies as triggers as well. Check the section on Workflow Triggers & List Filters for more details. ## Reporting & Dashboarding CloudFiles analytics can be pushed into HubSpot as a custom object called "CloudFiles File View" object. You can use the properties such as view time, scroll depth, email etc... to create custom reports and dashboards in HubSpot. We have a tutorial on how to create such dashboards at Custom File Analytics Dashboard. ![](https://media.help.cloudfiles.io/qs-cms-marketing-hs/07.png) ## Improving Sales & Service Team Consumption Many a times marketing teams want to maintain a centralized content repository & need sales teams to share collateral from that centralized location. On top of that, if sharing can be done in a way such that analytics can be reported on the content consumption, it would be great for validation. CloudFiles offers certain features to enable marketing teams to do just that. Sales & service users most often use HubSpot records, such as deals, tickets, contacts and companies for their day to day tasks. For giving access to sharing functionalities on HubSpot records, refer to our quick on Doc Sharing From Records Quickstart. ![](https://media.help.cloudfiles.io/qs-cms-marketing-hs/08.png) If sales teams are using sequences in HubSpot to automate email follow-ups, CloudFiles sharing links can be used in those emails along with personalization parameters as demonstrated in the bulk emails section above. If sales users instead prefer to copy paste the links on an ad-hoc basic, personalized record links can be provided as demonstarted in the File Portals for Sales & Service teams. They can also enable various security settings on the links as described in Send secure collaterals using Email Verification. Additionally, you can provide sales teams with Automated Internal Notifications to reduce their turnaround times. ![](https://media.help.cloudfiles.io/qs-cms-marketing-hs/09.gif) Lastly, a great strategy for sharing only personalized material is to create an explicit sharing folder for each of the records as part of a larger folder hierarchy. Selective Sub-Folder Sharing tutorial shows how to do this. ## What Next? You can go back to the Quick Starts article and check out our other quick starts on sales / service users, or the product wise quick starts. You can also go to the Features section explore the features in detail or head over to the Tutorials section to learn how to build various use cases using CloudFiles. --- # Sales & Service Users Quick Start https://help.cloudfiles.io/hubspot/sales-and-service-users-quick-start # Sales & Service Users Quick Start HubSpot Sales & Service Hubs are built for the respective teams, and CloudFiles integrates with many of their features to give sales & service users easy ways to manage, share & collect files in HubSpot. > Kind: Quick start · Updated: Jun 4, 2026 HubSpot Sales & Service Hubs are built for the respective teams. You can run various business operations such as deal & ticket management, one on one emailing, customer portals, automations etc... using these products. CloudFiles integrates with many of these features, providing HubSpot sales & service users easy ways to manage, share & collect files in HubSpot. Each of the sections below provides a brief overview of a key HubSpot sales / service use-case that is enabled using CloudFiles. Each section also links to other articles that cover features in detail. Here is a quick summary of what all is covered in this article - - File & Folder Management on Records - Connecting to external storages & performing file & folder operations from HubSpot records. Both manual and automated. - Collecting list of documents - Using HubSpot forms or CloudFiles datarooms with automations to create custom collection processes. - Sharing marketing documents & getting analytics - Basic doc sharing capabilities from records and supported automations. - Sharing sales & service documents securely - Security settings available on the sharing links to make your sharing & collection more secure. - Sharing documents via HubSpot customer portals - Using portals along with CloudFiles sharing links to create personalized sharing experience. - Generating sales/ service documents - Creating proposals, agreements and operational documents manually or automatically using HubSpot workflows. Each section below talks about these use-cases in detail and links to other useful articles. Check the What's Next section at the bottom to see where to go from here. ## File & Folder Management on Records CloudFiles enables both manual as well as automated file & folder management from HubSpot records. This includes browsing your connected storages (including Google Drive, SharePoint, CloudFiles storage etc...) from records, associating files & folders to records and performing various operaions such as upload, creating folders, preview, download etc... from the record itself. To do these operations manually, check out the Doc Management Quickstart. For more details on the widgets available on the records, check the CloudFiles Connected Folder Widget article. ![](https://media.help.cloudfiles.io/qs-sales-service-hs/01.png) We have various tutorials available that talk about automated folder creation & management processes as well. You check our tutorial on Automated Folder Hierarchies to undertsand how to auto create folders and sub-folders on record creation / update. The tutorial on Mirror Deal Folder to Contacts Automatically talks about how to make a parent folder visible on all child records. ## Collecting list of documents Document sharing is a two-way street. While you might be sharing docs, you might also be collecting docs in various ways. Clients might be sending you documents through emails, uploading them on forms etc... With CloudFiles you can unify your document collection using various techinques. If you are already collecting documents using HubSpot forms, you can check out the article on Move Files from HubSpot Forms to External Storage to automatically move & organize your files. ![](https://media.help.cloudfiles.io/qs-sales-service-hs/02.png) Dataroom file request blocks in CloudFiles can be used to collect files and automatically push them to a specific folder in an external storage of your choice. For details on using the dataroom & file collection feature manually, refer to our article on Dataroom Management in HubSpot. You can auto create datarooms and auto add file request block(s) to them with custom destinations using CloudFiles workflow actions. Our tutorial on Collecting sensitive documents talks about this use-case in the most basic form. You can also create highly customized collection portals. E.g. Selective File collection portal talks about an automation through which you can decide which file requests to add based on manual selection in a checklist. Document approval process talks about setting custom approval processes with client communication when uploads happens. File Upload Portal for clients talks about setting up a self updating dataroom so that clients can access the files that they upload. ![](https://media.help.cloudfiles.io/qs-sales-service-hs/03.gif) ## Sharing marketing documents & getting analytics Sales and service teams might need to share many marketing documents from a common marketing library. CloudFiles enables this by allowing library browsing & sharing from records. For more details, check out our quick start on Doc Sharing From Records Quickstart. Additionally, you can also create File Portals for Sales & Service teams and edit them individually on records while maintain a single link of sharing. This provides a great option for sharing hybrid marketing as well as personalized material to individual contacts. ![](https://media.help.cloudfiles.io/qs-sales-service-hs/04.gif) You can also setup Automated Internal Notifications when file view, upload events happen, thus reducing turnaround time for your team. ## Sharing sales / service documents securely While the above sections talk about more generic sharing that is applicable to any external stakeholder, sales & service teams usually need more secure sharing since they deal with confidential data. CloudFiles allows various security settings on it's links. You can apply expiry, passpower protection and email walls. You can enable email authentication and setup an allow / block list as well. You can read about these in the articles on File link security using HubSpot as well as Send secure collaterals using Email Verification. ![](https://media.help.cloudfiles.io/qs-sales-service-hs/05.jpg) ## Sharing documents via HubSpot customer portals In the various tutorials and articles referred above, the automations talk about how the sharing link can be copy pasted in a property. You can use these properties woth your customer portal pages to setup personalized sharing for your portal users. Additionally you can also leverage the CloudFiles API for your own custom built pages. ## Generating sales/ service documents Sales & service teams often need to generate personalised proposals, agreements, onboarding documents invoices and operational documents using HubSpot data. CloudFiles Document Generation enables teams to create such documents directly from HubSpot records using pre-defined templates. For more details, check out our quick start on Doc Generation Quickstart. Templates can include HubSpot properties, associated records, images, tables and conditional sections. Documents can then be generated manually from HubSpot records or automatically from HubSpot workflows. Generated documents can also be stored in connected cloud storages, shared securely using CloudFiles sharing links or sent for signature through CloudFiles eSignature Integration ## What Next? You can go back to the Quick Starts article and check out our other quick starts on marketing / CMS users or the product wise quick starts. You can also go to the Features section explore the features in detail or head over to the Tutorials section to learn how to build various use cases using CloudFiles. --- # Admin Quick Start https://help.cloudfiles.io/hubspot/admin-quick-start # Admin Quick Start This article provides a complete overview of the CloudFiles HubSpot Integration settings for admins and users managing pricing, storage connections, document sharing, licenses, and account/HubSpot settings. > Kind: Quick start · Updated: Jun 4, 2026 This article provides a complete overview of the CloudFiles HubSpot Integration settings. It is designed to help admins and users understand how to manage pricing, connect storage accounts, configure document sharing rules, assign licenses, and adjust account or HubSpot-specific settings. In the sections that follow, we’ll cover: - Pricing Quick Info – How licenses, products, tiers, and add-ons work. - Accessing Dashboard – Where admins can access and manage settings. - Doc Management Settings – Connecting storage accounts, managing libraries, and handling conflicts. - Doc Sharing Settings – Configuring link creation, branding, compliance, and viewer options. - License & Billing Settings – Managing user licenses, subscriptions, and billing. - Account Settings – Updating account info, API keys, and subscription details. - HubSpot Settings – Managing app logs, permissions, and app cards in HubSpot. ## Pricing Quick Info The CloudFiles HubSpot Integration is priced in a way that you only purchase what you need. The pricing structure is built around a few core concepts. Licenses, Products, Tiers & Add-Ons. You purchase license(s) for your users by deciding the Product(s) and Tier you need. All the purchased licenses will be on the same Product(s) and tier. Only users who will be using CloudFiles functionlaity through HubSpot need a license (i.e. all HubSpot users do not need a license). There is no limit on minimum licenses. Each license offers some credits on things like views, automations etc... These can be extended using add-ons. Discounts are available for annual & bundled purchases. Licenses start as low as $5 / user / mo for document management business plan. Add-ons start as low as $10 / mo. Refer to our Subscription Plans guide for more info on this. ## Accessing Dashboard For admins, it’s easier to access the dashboard settings by logging in at https://app.cloudfiles.io. For more options, refer to this article How to go to the CloudFiles App Dashboard? ![](https://media.help.cloudfiles.io/qs-admin-hs/01.png) ## Doc Management Settings The Document Management settings are used to connect cloud storage accounts and define how files and folders are handled. In this, you can connect supported storages for automations, manage libraries, and set rules for handling duplicate files or folders. Refer to the Doc Management Settings articles for more information. ![](https://media.help.cloudfiles.io/qs-admin-hs/02.png) ## Doc Sharing Settings The Document Sharing settings allow you to configure how links are created, branded, and secured when sharing files through CloudFiles. These settings apply at the account level, but users can still adjust options at the individual link level if required. Refer to the Doc Sharing Settings for more information. ![](https://media.help.cloudfiles.io/qs-admin-hs/03.png) ## Doc Generation Settings Connect docusign, manage templates and view version history using the Doc Generation tab on CloudFiles webapp dashboard. ![](https://media.help.cloudfiles.io/qs-admin-hs/04.png) ## Account Settings You can click on the Gear button at the top right corner to access the Account settings page. The Account Settings section includes options to manage your account information, billing, subscriptions, licenses, and API keys. Refer to the Other Account Settings article for more information. ![](https://media.help.cloudfiles.io/qs-admin-hs/05.png) ## License & Billing Settings The License and Billing settings let you manage user licenses and subscription details for Document Management and Document Sharing. Refer to the License & Billing Settings article for more information. ![](https://media.help.cloudfiles.io/qs-admin-hs/06.png) ## HubSpot Settings CloudFiles settings in HubSpot can be managed from the Connected Apps section. The App Log records connection activities with user and time details. The App Access and Permissions lists the granted permissions, including CRM data, workflows, files, tickets, form submissions, and timeline events. The App Cards define where CloudFiles appears in HubSpot (e.g., contacts, companies, deals, or tickets), and you can manage their placement from this section. ![](https://media.help.cloudfiles.io/qs-admin-hs/07.png) --- # CloudFiles Glossary - Important Keywords https://help.cloudfiles.io/hubspot/cloudfiles-glossary-important-keywords # CloudFiles Glossary - Important Keywords Get acquainted with the terms used by CloudFiles to make your secure file sharing easier. > Kind: Quick start · Updated: Sep 4, 2026 Get acquainted with the terms used by CloudFiles to make your secure file sharing easier. ## CloudFiles CloudFiles is a secure file sharing and analytics webapp for businesses. It converts your files to secure links, that provides analytics about content engagement and assists your Salesforce or HubSpot CRM to create powerful automations based on “file viewed” event. It has one click sync with your favorite Cloud based drives like Google Drive, One Drive, Box, Dropbox and SharePoint. If you have your own AWS you can connect it with CloudFiles and save on additional storage cost. ### Admin The admin is a power user in CloudFiles. They have the power to assign licenses to users, invite new users and manage other administrative settings. ### User A user is anyone who is operating a CloudFiles license. They have access to all the features, however they do not possess any administrative rights. ### Link A link or url is a reference text which a user can click to access your data and in CloudFiles' context, it connects your files to simple text. ## Analytics CloudFiles provides deep page by analytics for your secure CloudFiles links. This is available in the analytics section. ### Total Downloads Total downloads signifies the total number of times your file has been downloaded. ### Total Time Total time is the sum of the time of all the individual view sessions on your file. ### Total Views Total Views is the sum of all the individual views on your file. If your file was viewed by the same person twice, it will be counted as two views. ### Unique Views Unique Views are those views on your file that were done by different people. If your file was viewed twice by the same person, the unique view will be counted as one. ### Sessions A session is a group of interactions done by a user. In CloudFiles' context it is a view activity conducted on your file. ## Content Library The content library is the basic file repository for your files. You can upload files from multiple sources into the content library including your local storage and your favorite Cloud based drives. In CloudFiles, there is a storage limit for files, and it's based on the fair usage policy. ### Files A file is any object in which you store your data, information, settings or commands. All types of files are supported on CloudFiles. CloudFiles makes the distinction between Renderable Files and Non-Renderable files. Renderable files are those which can be opened in a browser eg. pdfs, ppts, videos, excel, word, etc. Non-Renderable Files are those which cannot be opened in a browser eg. zip files or .exe files. Both Renderable and non-Renderable files can be shared via CloudFiles, however the non-Renderable files can only be downloaded whereas the Renderable files can be downloaded as well as be viewed on the CloudFiles viewer. ### Folder Folders are simply directories in the CloudFiles content library. Folders can contain both files and folders. ## Data Room/ Virtual Data Room Data Room is a secure file storage space for your business documents. A virtual Data Room (VDR) is a secure online repository for document storage and controlled distribution. It's a storage space that multiple authorized people can access simultaneously. It's meant to share your documents in its finalized state without any further requirements of editing. ## Link Settings Link Settings in CloudFiles contain 4 major sections namely: status, expiry, security and notifications. ### Disable Downloads If you have enabled downloads on the CloudFiles links that you have created, your recipients will be able to download your files. If you do not wish to let them download your files, you can turn off that setting. ### Expiry Settings CloudFiles lets you preset the time when you wish to disable your file from viewing. This can be based on a certain number of views or simply the time after which it would not be available for viewing. ### Password A password is any key that can be used to protect your file from unauthorized views. If this setting is enabled only a person with the key can view your file. ## White-Label White-labeling with CloudFiles is a Custom Branding feature of CloudFiles. We allow our users to set custom domains, sub-domains and add their logo to the CloudFiles viewer. ### Domain/ Sub Domain A domain name is a string of text that directs users to its website data. A sub domain is additional information provided over the domain to specify part of the website — for example, in www.cloudfiles.io/blog, the domain is “cloudfiles” and the subdomain is “blog”. CloudFiles lets you set custom domains and subdomains as per your wish on our CloudFiles file viewer. ## Integrations CloudFiles is made with a customer process first approach where we try to minimize changes in your existing workflows while providing your team with powerful business file sharing features. We are available directly in your CRMs — HubSpot and Salesforce. ## Mirrored Library CloudFiles content library is the central hub of files in the CloudFiles ecosystem. You can manually import files into it. However, with Mirrored Library you can directly sync your Cloud based drives like Google Drive, One Drive, SharePoint, Dropbox and Box with CloudFiles. So, now your files will be immediately synced whenever there are changes in your original files. This feature will save tons of time from your workforce's productive hours. --- ## Salesforce: Document Management & Sharing --- # Document Management & Sharing https://help.cloudfiles.io/salesforce/document-management-and-sharing # Document Management & Sharing Your go-to resource for installing, configuring, and maximizing the CloudFiles document management tool within your Salesforce org — efficient document storage, secure sharing, and powerful automation across multiple cloud storage platforms. > Kind: Guide · Updated: Jul 9, 2026 This guide is your go-to resource for installing, configuring, and maximizing the CloudFiles document management tool within your Salesforce org. Whether you're setting it up for the first time or looking to streamline your document management workflows, this documentation will walk you through everything you need. CloudFiles integrates seamlessly with Salesforce, enabling efficient document storage, secure sharing, and powerful automation across multiple cloud storage platforms. Get started with these key sections: - Installation: Setting up CloudFiles in your Salesforce instance — installing the package from the Salesforce AppExchange, understanding the components included, and reviewing the technical requirements to ensure compatibility. - Configuration: Set up and customize the app to fit your business needs — connect your Salesforce org to a CloudFiles account, integrate external storage providers like SharePoint, Google Drive, and AWS, and manage user permissions. - Features: The powerful features of CloudFiles in Salesforce, including custom widget flow actions, automation, and more. - Sharing Add-On: The document sharing add-on enhances CloudFiles document management by enabling secure, customizable links for external file or folder access — setup, access controls, and activity tracking for shared documents. - Experience Cloud: How CloudFiles integrates with Salesforce Experience Cloud to securely share files and folders with external users — enabling Experience Cloud sharing, configuring permissions, and using CloudFiles widgets on Experience Cloud pages. --- # Installation (Document Management & Sharing) https://help.cloudfiles.io/salesforce/4kRV-installation # Installation The Installation section guides you through setting up CloudFiles in your Salesforce org, ensuring a smooth onboarding process. > Kind: Guide · Updated: Jul 4, 2026 The Installation section guides you through setting up CloudFiles in your Salesforce org, ensuring a smooth onboarding process. This allows you to seamlessly leverage CloudFiles for document management and automation. CloudFiles is a robust document management platform that integrates with multiple external storage solutions. Before you begin, ensure you meet the technical requirements and are familiar with the components included in the package. This section is divided into three key sub-sections - ## 1 - Installing from the Salesforce AppExchange The CloudFiles managed package is available for installation from the Salesforce AppExchange. This subsection covers: - Pre-requisites – Ensure you have System Administrator access. - Step-by-step installation guide – From finding CloudFiles on AppExchange to approving third-party access. - Post-installation steps – After installation, proceed with configuration to set up your CloudFiles account and storage integrations. ## 2 - What's in the Package ? When you install CloudFiles, you get access to various tools and features designed to enhance your document management experience. This subsection covers: - CloudFiles Lightning App & Classic App – Access CloudFiles from Salesforce’s App Launcher or in Salesforce Classic. - Lightning Web Component (LWC) Widgets – Embed CloudFiles on salesforce pages for seamless file and folder management. - Custom Permissions – Control user access with predefined roles (Admin, Standard, External User). - Flow Actions & Components – Automate document-related processes using Salesforce Flows and CloudFiles Event Records. - Document Sharing Add-on – Share files with detailed tracking and analytics directly from Salesforce. - Apex Support – Extend CloudFiles functionality with custom Apex code. ## 3 - Technical Requirements Before installing CloudFiles, ensure your Salesforce edition, product, and browser meet the requirements. This subsection details: - Supported Salesforce Editions – Enterprise, Unlimited, Performance, Developer. - Compatible Salesforce Products – Works with Sales Cloud, Service Cloud, Field Service, Financial Services Cloud, and more. - Supported Browsers & Mobile Compatibility – Works with Chrome, Firefox, Safari, Edge, Internet Explorer 11, and is optimized for the Salesforce Mobile App and FSL Mobile App. Once installed, proceed to the Configuration Section to set up CloudFiles for your organization! > **Note** — If you're on a paid plan, reach out to the CloudFiles support team for further assistance, at - support@cloudfiles.io --- # Installing from the Salesforce AppExchange (Salesforce: Document Management & Sharing) https://help.cloudfiles.io/salesforce/MDoV-installing-from-the-salesforce-appexchange # Installing from the Salesforce AppExchange CloudFiles | Document Management & Sharing Platform is available to install from the Salesforce AppExchange. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles | Document Management & Sharing Platform is available to install from the Salesforce AppExchange. ![](https://media.help.cloudfiles.io/dms-installing-from-the-salesforce-appexchange-sf/01.png) > **Prerequisites** — You must have System Administrator credentials to install an application from the AppExchange. ## Installation Steps - Go to the CloudFiles | Document Management & Sharing Platform listing on the Salesforce App Exchange, and click on "Get It Now". ![](https://media.help.cloudfiles.io/dms-installing-from-the-salesforce-appexchange-sf/02.gif) - Log in to the AppExchange. - Specify where you want to install - Click Install in production to install in your production instance. - Click Install in sandbox to install in a sandbox. ![](https://media.help.cloudfiles.io/dms-installing-from-the-salesforce-appexchange-sf/03.gif) - Confirm the Installation Details - Check "I have read and agree to terms and conditions" - Click "Confirm and Install" ![](https://media.help.cloudfiles.io/dms-installing-from-the-salesforce-appexchange-sf/04.gif) - This redirects you to Salesforce login page to continue the installation. - Choose who to install CloudFiles for, Select "Install for Admins Only". ![](https://media.help.cloudfiles.io/dms-installing-from-the-salesforce-appexchange-sf/05.gif) - Don't worry, all your users will be able to access CloudFiles. We select this option to better control the permissions for all users. - Approve Third-Party Access - Check "Yes, grant access to these third-party websites" - Click "Continue" ![](https://media.help.cloudfiles.io/dms-installing-from-the-salesforce-appexchange-sf/06.gif) - Read Why are various third party accesses asked during installation for information. - The App may sometimes take long time to install, jclick "Done". You will recieve an email after the installation is completed. ![](https://media.help.cloudfiles.io/dms-installing-from-the-salesforce-appexchange-sf/07.gif) > **Post Installation** — After installing, you must finish the steps listed in Configuration based on your business use case. --- # What's in the Package ? https://help.cloudfiles.io/salesforce/pDIg-whats-in-the-package # What's in the Package ? Overview of what's included in the CloudFiles managed package for Salesforce, covering the Lightning and Classic apps, the LWC widget, FSL mobile action, permission sets, Document Sharing Add-on, Flow actions/components, events, and Apex. > Kind: Guide · Updated: Jul 4, 2026 When you install the CloudFiles | Document Management & Sharing Platform managed package, you'll gain access to a suite of powerful tools and components designed to streamline document management within Salesforce. Here's what's included: ## CloudFiles Lightning Experience App The CloudFiles app is accessible via the App Launcher in Lightning Experience. This app enhances productivity by allowing users to seamlessly switch between apps and includes all admin related pages. ![](https://media.help.cloudfiles.io/dms-whats-in-the-package-sf/01.gif) The Lightning app includes Lightning page tabs of utilities like "Document Management", "Content Library" and "Settings". You can even append other navigation items to the Lightning app that you find relevant. ![](https://media.help.cloudfiles.io/dms-whats-in-the-package-sf/02.png) Manage the App: Edit and configure the app in App Manager under Lightning Experience Setup. ![](https://media.help.cloudfiles.io/dms-whats-in-the-package-sf/03.gif) ## CloudFiles Classic App For users on Salesforce Classic, the CloudFiles app remains accessible through its app tabs, ensuring seamless functionality across both interfaces. ![](https://media.help.cloudfiles.io/dms-whats-in-the-package-sf/04.gif) ## Lightning Web Component (LWC) The CloudFiles widget is a powerful Lightning Web Component that can be seamlessly added to any Salesforce standard or custom Lightning pages. It allows users to link folders from external storage platforms such as SharePoint, Google Drive, OneDrive, Box, Dropbox, or AWS S3. Once linked, users can perform various operations directly from the widget, including viewing, searching, previewing, editing, downloading, sharing files, and uploading content to external storage. ![](https://media.help.cloudfiles.io/dms-whats-in-the-package-sf/05.gif) This widget supports automation for processes like folder creation, linking, and sharing using Salesforce Flows. It can also be customized to meet specific needs, such as restricting file deletion, displaying selected metadata columns, or enforcing mandatory fields for file uploads. Additionally, multiple folders or files can be linked to a single Salesforce record, with automation making this process even more efficient. The widget also facilitates secure file sharing with community and external users while enabling detailed analytics on file interactions. ## Field Service LWC Action for FSL Mobile App The CloudFiles widget can also be added as a Lightning Web Component Action to Salesforce objects. This allows Field Service Mobile App users to view and interact with attached folders directly from their mobile devices. ![](https://media.help.cloudfiles.io/dms-whats-in-the-package-sf/06.gif) ## CloudFiles Permission Sets The CloudFiles app includes custom permissions to control access to its features. These permissions are grouped into three predefined permission sets: - CloudFiles Admin User: Full access, including admin-level settings. - CloudFiles Standard User: Full functionality for internal users, excluding admin features. - CloudFiles External User: Suitable for Experience Cloud (community) users. Permission sets are auto-assigned upon installation but can be manually reassigned via Setup > Permission Sets > Manage Assignments. You can also create custom permission sets tailored to your needs. ## Document Sharing Add-on The Document Sharing Add-on lets you share files and folders directly from Salesforce using CloudFiles. Attach files or folders from cloud storage providers like Google Drive, SharePoint, or Dropbox to Salesforce records, then create secure sharing links with customizable settings. Track engagement with detailed analytics, including opens, time spent, and user-specific insights, all within Salesforce. The add-on also integrates with Salesforce Flows, enabling automated link creation and configuration for streamlined processes. ## Flow Actions and Components The package includes CloudFiles Flow Actions and Screen Flow Components, enabling Process automation through Flow Builder and Dynamic user interfaces with Screen Flows. ![](https://media.help.cloudfiles.io/dms-whats-in-the-package-sf/07.gif) ## CloudFiles Events CloudFiles supports event-driven automation with: - Platform Events: Trigger events for operations related to CloudFiles functionality. - Event Records: Automatically create custom "CloudFiles Event" records, which can be leveraged in workflows and triggers. ## Apex Extend CloudFiles functionalities using Apex to build advanced, custom integrations for your Salesforce org. --- # Technical Requirements https://help.cloudfiles.io/salesforce/technical-requirements # Technical Requirements To install and successfully use CloudFiles | Document Management & Sharing Platform, you must have one of the following from each category. > Kind: Guide · Updated: Jul 4, 2026 To install and successfully use CloudFiles | Document Management & Sharing Platform , you must have one of the following from each category. ## Salesforce® EditionLink to Salesforce® Edition - Performance / Unlimited - Enterprise - Developer ## Salesforce® ProductsLink to Salesforce® Products - Sales Cloud - Service Cloud - Force.com / App Cloud - Health Cloud - Field Service - Financial Services Cloud ## Internet Browsers (latest stable version of) - Firefox® - Chrome® - Internet Explorer® (version 11 or the latest version supported by Salesforce) - Safari® - Microsoft Edge ## Mobile - Compatible with Salesforce Mobile App - FSL Mobile Application (Android and iOS) - all mobile browsers --- # Configuration (Document Management & Sharing) https://help.cloudfiles.io/salesforce/configuration # Configuration Landing page for CloudFiles Document Management setup in Salesforce: account setup, storage/library configuration, user management, and widgets. > Kind: Guide · Updated: Jul 4, 2026 This section is the foundation for using CloudFiles in Salesforce. It guides you through setting up your CloudFiles Account, Integrating External Storage solutions, and Managing Users and much more. ## 1 - CloudFiles Account Setup CloudFiles Account Setup Before you can start using CloudFiles, you need to connect your Salesforce Org with CloudFiles. This section covers: - Connecting Your Salesforce Org – Step-by-step process to set up your CloudFiles account. - Verifying Account Status – Confirm your CloudFiles account details and connection status in the Settings tab. Once the account is successfully connected, you can explore CloudFiles features and integrate external storage solutions. ## 2 - External Storage / Library Configuration External Storage / Library Configuration CloudFiles integrates with multiple external storage providers, allowing users to manage documents directly within Salesforce. This section covers: - Library Setup - Connect SharePoint, Google Drive, OneDrive, AWS S3, Azure Blob, Box, Dropbox, MS Teams, and CloudFiles Storage. - Library specific settings - Choose the libraries you want to work with and configure them based on your needs. ## 3 - User Management User Management Controlling user access and permissions is crucial for maintaining security and efficiency. This section covers: - User Permissions – Define and assign roles (Admin vs. Standard User) to control access. - License Management – Manage CloudFiles user licenses to ensure only authorized users have access. - External Library Access – Enable users to log into their external storage accounts and access files. Once your configuration is complete, CloudFiles will be fully functional within Salesforce, providing a streamlined and secure document management experience! ## 4- Adding CloudFiles widgets to Salesforce Classic Adding CloudFiles widgets to Salesforce Classic CloudFiles Lightning widgets can also be added to Salesforce Classic, providing the same Lightning look and feel. This article shows how to add the ‘Connected Folder’ widget to an Account Page, a process applicable to other widgets and the content library tab as well. ## 5- Settings Settings The Settings page in the CloudFiles Salesforce app allows admins to configure event publishing and external library access. It lets you choose which file actions trigger Salesforce events and whether users connect with personal or shared service credentials. --- # CloudFiles Account Setup (Salesforce: Document Management & Sharing) https://help.cloudfiles.io/salesforce/1-9A-cloudfiles-account-setup # CloudFiles Account Setup Once CloudFiles | Document Management & Sharing Platform is installed successfully in your Salesforce instance, you will need to setup a CloudFiles Account for the Salesforce Org. > Kind: Guide · Updated: Jul 4, 2026 Once the CloudFiles CloudFiles | Document Management & Sharing Platform is installed succesfully in your Salesforce instance, you will need to setup a CloudFiles Account for the Salesforce Org. You can setup the CloudFiles app from within Salesforce by following the below steps. - Click on the App Launcher (9 dots icon) on top left of Salesforce and search 'CloudFiles'. ![](https://media.help.cloudfiles.io/dms-cloudfiles-account-setup-sf/01.gif) - You will land on the "Home" Tab of the CloudFiles App - Before connecting your Salesforce org to CloudFiles, select your preferred data region from the dropdown. Your data will be stored in your selected data region's data centers. We currently support the following regions: - USA (default) - Australia - European Union - United Kingdom > **Note** — This region selection determines where all your CloudFiles data (accounts, attachments, resource details, etc.) is stored and ensures your data never leaves the selected region for compliance with data residency requirements. ![](https://media.help.cloudfiles.io/dms-cloudfiles-account-setup-sf/02.png) - Once you've selected your region, click on "Setup" button to connect your Salesforce org to CloudFiles. ![](https://media.help.cloudfiles.io/dms-cloudfiles-account-setup-sf/03.png) - This pops the "Allow Access ?" prompt. Click "Allow". ![](https://media.help.cloudfiles.io/dms-cloudfiles-account-setup-sf/04.gif) - This connects your Salesforce Org with CloudFiles. You can confirm the Account details and connection status in the "Settings" Tab. ![](https://media.help.cloudfiles.io/dms-cloudfiles-account-setup-sf/05.gif) --- # User Management (Salesforce: Document Management & Sharing) https://help.cloudfiles.io/salesforce/user-management # User Management Explains User Management in CloudFiles Document Management: user permissions, license management, and external library access in Salesforce. > Kind: Guide · Updated: Jul 4, 2026 User Management in CloudFiles ensures that users have the right access, licenses, and permissions to efficiently manage documents within Salesforce. It covers three key areas: ## User Permissions Defines what actions a user can perform within CloudFiles. ## License Management Controls the activation and assignment of CloudFiles licenses to Salesforce users. ## External Library Access Manages how users connect to and interact with external storage systems like SharePoint, Google Drive etc. within Salesforce. Each CloudFiles user must have the correct permissions and an active license to use CloudFiles features. Admins can assign these through permission sets, manage licenses via the User Management page, and configure access to external storage for seamless document handling. For detailed configurations, refer to the respective subsections. --- # User Permissions (Salesforce: Document Management & Sharing) https://help.cloudfiles.io/salesforce/user-permissions # User Permissions The CloudFiles Document Management & Sharing Platform installed package includes custom permissions to control access to various features, plus default permission sets based on commonly used combinations. > Kind: Guide · Updated: Jul 4, 2026 The CloudFiles Document Management & Sharing Platform installed package includes custom permissions to control access to various features. Additionally, we provide default permission sets based on commonly used permission combinations. ## CloudFiles Custom Permissions CloudFiles offers granular permissions to manage access and functionality. Below is a list of these permissions: ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/01.png) - Superadmin - Allows a user to manage everything with regard to CloudFiles Document Management. - Connect or disconnect files & folder - Allows a user to link/unlink a file or folder to a record in Salesforce - Connect files & folder - Allows a user to only link a file or folder to a record in Salesforce - Disconnect files & folder - Allows a user to only unlink a file or folder to a record in Salesforce ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/02.png) ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/03.png) - Create Folder - Allows user to create sub folders inside a record's connected folders. In the UI, it controls the visibility of following action ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/04.png) - Delete Files & Folders - Allows a user to delete a file or a folder from record page. This also deletes the files in the underlying external storage. In the UI, it controls the visibility of following actions ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/05.png) - Upload Files - Allows a user to upload files through the CloudFiles widget. In the UI, this permission controls the visibility of "Upload Files" button & "Drag and Drop" functionality ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/06.png) - Allow Download - This permissions allows a user to download files from CloudFiles widget or the file preview window. ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/07.png) - Update Files & Folders - Allows a user to rename a file or folder or update any metadata properties or columns. ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/08.png) - Share Files & Folders - Allows a user to share files & folders externally, using a CloudFiles sharing link. For a file already shared, this permissions also controls the access for updating link settings ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/09.png) - Allow Sharing with Community - Allows an internal person to share a particular file/folder with community users or experience cloud users. ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/10.png) - View Analytics - If a file/folder is being shared externally using a CloudFiles link, this permission allows a user to view analytics like who is looking at the file/folder, how much time they're spending on it etc. from the "shared-links" widget. ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/11.png) - View Sharing Settings - If a file/folder is being shared externally using a CloudFiles link, this permission allows a user to view the settings of the link, like who can access the link, if there is a password on the link etc. ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/12.png) ## Permission Sets CloudFiles comes with few pre-packaged permission sets. You can always create a custom permission set using CloudFiles permissions described above. - CloudFiles Admin User - This permission set is suitable for admins who should have access to all CloudFiles functionality within Salesforce, including billing. It contains all the permissions listed the image below: ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/13.png) - CloudFiles Standard User - This permission set is suitable for all internal users (company employees) who should have access to all CloudFiles functionality except admin level features. It contains all the permissions listed the image below: ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/14.png) - CloudFiles External User - This permission set is suitable for experience cloud users(community users). It contains all the permissions listed the image below: ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/15.png) - CloudFiles Field Service User - This permission set is suitable for field service users . It contains all the permissions listed the image below: ![](https://media.help.cloudfiles.io/dms-user-permissions-sf/16.png) ## Permission Set Assignment To reduce the setup time, CloudFiles automatically assigns following permission sets on installation - - CloudFiles Admin User - This is assigned to all users with "System Administrator" profile - CloudFiles Standard User - This is assigned to all internal users except administrator You can manage these assignments according to your needs. > When new users are added to your Salesforce org, they would need to be assigned CloudFiles permissions manually. You can also setup a flow to automatically do it when users are added. Please feel free to reach out to us for any help regarding this. To manually assign permission sets, please follow the steps below - Go to Setup > Permission Sets. - Select appropriately among the available default package permission sets or custom permission sets. - Click on Manage Assignments. Then Click Add Assignment. Choose the users you want to add the selected permission set for. - Follow the prompts to finish the assignment process. --- # License Management (Salesforce: Document Management & Sharing) https://help.cloudfiles.io/salesforce/license-management # License Management CloudFiles License Management in Salesforce allows admins to monitor license usage and control which users have access to CloudFiles features. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles License Management in Salesforce allows admins to monitor license usage and control which users have access to CloudFiles features. Once the necessary permissions are assigned to Salesforce users, any interaction with the CloudFiles Lightning App or its Lightning Web Components (LWCs) will create a corresponding CloudFiles User. Alternatively, Admins can also explicitly assign licenses to users directly from the User Management page using the Manage Users option. ## Viewing CloudFiles Users You can view all CloudFiles users from the User Management page under the Document Management tab of the CloudFiles app. The page shows the total number of active licenses and the total licenses allocated to your org. Each user entry displays their name, email address, and current license status (Active or Inactive). ![](https://media.help.cloudfiles.io/dms-license-management-sf/01.png) A Salesforce user must have an "Active" CloudFiles User status to access CloudFiles functionalities. If an "Inactive" user attempts to interact with a CloudFiles LWC, they will receive a "You need CloudFiles license to access this widget" message. ![](https://media.help.cloudfiles.io/dms-license-management-sf/02.png) To activate or deactivate a user: - Click the pencil (edit) icon next to the License Status column. - Select Active or Inactive from the dropdown. - Click Save to apply the changes. ![](https://media.help.cloudfiles.io/dms-license-management-sf/03.png) > **Note** — If despite having an active license the user is not able to interact with the widget, please confirm if the permission set has been correctly assigned to the user. Having either the 'CloudFiles Admin User' or 'CloudFiles Standard User' permission set is mandatory for any user to be able to interact with CloudFiles functionality. ## Managing Users Clicking Manage Users on the User Management page opens a detailed view of all Salesforce users in your org. This view includes additional columns: Profile and Role, and supports filtering by both columns to help you find and manage users more efficiently. ![](https://media.help.cloudfiles.io/dms-license-management-sf/04.png) To activate or deactivate a user, locate them in the list and toggle their license status accordingly. ## License Limitations The number of active CloudFiles users cannot exceed the total licenses allocated to your Salesforce org. If you try to activate more users than your license count allows, you will be prompted to purchase additional licenses. ![](https://media.help.cloudfiles.io/dms-license-management-sf/05.png) ## Buying Licenses You can add CloudFiles product licenses directly from the User Management page by clicking the Buy Licenses button in the top right. Any new licenses are immediately available for use and will be reflected in your billing as per your invoice. This lets you scale usage instantly without waiting for manual provisioning. ![](https://media.help.cloudfiles.io/dms-license-management-sf/06.png) --- # External Library Access https://help.cloudfiles.io/salesforce/external-library-access # External Library Access Any Salesforce user with the necessary User Permissions and an active license can access an external storage library configured by an admin, via the Content Library tab or CloudFiles LWCs. > Kind: Guide · Updated: Jul 4, 2026 Any Salesforce user with the neccessary User Permissions and an active license can access an external storage library configured by an admin. Users can do this through the Content Library tab in the CloudFiles App or via CloudFiles LWCs embedded on Lightning pages. ## Connecting to External Storage Each new CloudFiles user must log into their external storage account (e.g., SharePoint, Google Drive) to access the external storage library. - This one-time login ensures access to storage with the same permissions as their external storage user account. - Once connected, the user can seamlessly access external storage files and folders within Salesforce, either via the Content Library tab or CloudFiles LWCs on record pages. ### Steps to Connect External Storage - Navigate to the Content Library tab in the CloudFiles App. - Select the configured external library (set up by an admin) from the dropdown. - Click the Connect button and log into the external storage account. ![](https://media.help.cloudfiles.io/dms-external-library-access-sf/01.png) Once logged in, the user can: - Browse and manage files/folders from the Content Library tab. ![](https://media.help.cloudfiles.io/dms-external-library-access-sf/02.png) - Perform actions like upload, create folders, move, delete, share, or view metadata (Drive ID, Resource ID, etc.). ![](https://media.help.cloudfiles.io/dms-external-library-access-sf/03.png) - Switch between libraries using the dropdown. - Log out and connect a different account via the gear icon at the top-right corner. ![](https://media.help.cloudfiles.io/dms-external-library-access-sf/04.png) > If the Salesforce user has not logged in yet, they will be prompted to connect their external storage when using the CloudFiles LWC widget on record pages. ![](https://media.help.cloudfiles.io/dms-external-library-access-sf/05.png) ## Access Control The access to the contents of external storage depends on the user's External Storage account connected. - If a user does not have access to a specific resource, they will see the message: "You do not have access to this particular resource." or "Something went wrong" ![](https://media.help.cloudfiles.io/dms-external-library-access-sf/06.png) - Login is per user and must be done individually for each CloudFiles user with an active license. ## Service Account (Admin-Controlled Access) For admins who prefer a common external storage account across all users, CloudFiles offers a Service Account mode. - To enable this, go to Settings > Document Management Tab and turn on: "Use service account for library access." - This allows all users to access the external library using a shared integration user account (configured by the admin). - All users will have the same level of access as the Integration user. > **Note** — Every user interacts with the widget through the service account, which means all create, read, update, and delete (CRUD) operations are performed using the integration user's permissions. ![](https://media.help.cloudfiles.io/dms-external-library-access-sf/07.png) ## Experience Cloud Users - Community users (Experience Cloud users) do not need to connect their own external storage accounts. - Access is controlled based on sharing settings configured by the admin. - To enable Experience Cloud sharing, turn on: "Enable sharing with Experience Cloud Users" in the Experience Cloud page of the Document Management tab. - Enabling this option allows you to share documents with Experience Cloud users and manage the sharing via the Share With Community User or Remove from Community flow actions. ![](https://media.help.cloudfiles.io/dms-external-library-access-sf/08.png) ### Automatic Sharing for Experience Cloud Users - If you want to automatically share files attached to a record with Experience Cloud users, enable: "Automatically share files with Experience Cloud users when attached to a record." - This ensures files connected to a record are immediately accessible on Experience Cloud record pages via CloudFiles LWCs. ![](https://media.help.cloudfiles.io/dms-external-library-access-sf/09.png) --- # Adding CloudFiles widgets to Salesforce Classic https://help.cloudfiles.io/salesforce/adding-cloudfiles-widgets-to-salesforce-classic # Adding CloudFiles widgets to Salesforce Classic Learn how to add the 'Connected Folder' widget to your Salesforce Classic Account Page with this step-by-step guide. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles provides a number of Lightning web components that make it easy for Salesforce Lightning users to access and share their files from cloud storages inside Salesforce. At the same time, a number of Salesforce users still use Salesforce Classic. For this reason, we provide Salesforce classic support, such that these lightning widgets can be inserted into Salesforce classic pages, with exactly the same look and feel of Salesforce lightning. In this article, we will be adding the 'Connected Folder' widget onto a Account Page in Salesforce classic. The same process can also be used to insert other widgets or access the content library tab in Salesforce classic as well. Follow the steps below to add the 'Connected Folder' widget onto a Account Page in Salesforce Classic - - Create Visualforce page - Here we create a Visualforce page that will contain the folder widget markup. - Add section to Account page- We will edit the layout of an Account page and add a section which acts as a cotainer for our Visualforce page. - Add Visualforce page to section- In this section, we add the Visualforce page on our Account page. - See the widget in classic page- Finally, in this section we see the widget in action on a Salesforce classic page. ## Step 1 - Create Visualforce Page - Go to Setup > Visualforce Pages > New Page - Add a label and name (e.g. Account Folder Page) - Copy & Paste the Visualforce Markup code from below - Update 'ObjectName' in the markup to your object name (e.g. Account) - Save Use this code for the visualforce markup - ```xml ``` The VisualForce Page we created is shown below - ![](https://media.help.cloudfiles.io/dms-adding-cloudfiles-widgets-to-salesforce-classic-sf/01.png) Now that your Visualforce page is ready, we will insert it on the Account Object. ## Step 2 - Add Section to Account Page Before we can add the Visualforce page, we will need to add a section on the account page. This section acts as a container for our Visualforce page. First open the layout editor of the page you want to insert the widget on. Go to an any record of that object type (e.g. we went on an Account called CloudFiles) and click the 'Edit Layout' button on top right. This is shown below - ![](https://media.help.cloudfiles.io/dms-adding-cloudfiles-widgets-to-salesforce-classic-sf/02.png) In the layout editor, follow the simple steps below to add a section - - On the top navigation panel, go to "Visualforce Pages" - Drag and drop a section component on the green area - Give your section any name (e.g. 'Internal Files', 'Folder' etc...) - Uncheck 'Edit Page' and choose 1-column layout The section properties we used are shown below. ![](https://media.help.cloudfiles.io/dms-adding-cloudfiles-widgets-to-salesforce-classic-sf/03.png) Now that we have our container setup, we only need to add the visualforce page into this. ## Step 3 - Add Visualforce page to Section In the navigation panel, you will also see the Visualforce page that we created in step 1. Simply drag and drop that component onto this section. Set height to 400 and width to 100% as shown below. ![](https://media.help.cloudfiles.io/dms-adding-cloudfiles-widgets-to-salesforce-classic-sf/04.png) Click OK and you are all done! ## Step 4 - See the widget in classic page Now that we have everything setup, we can simply go to any account page work with the widget just like we do on in Salesforce Lightning. ![](https://media.help.cloudfiles.io/dms-adding-cloudfiles-widgets-to-salesforce-classic-sf/05.png) Check out all our LWC components to see what else you can do in Salesforce Classic. --- # Settings (Salesforce: Document Management & Sharing) https://help.cloudfiles.io/salesforce/settings # Settings The Settings page in the CloudFiles Salesforce app (under Document Management) lets admins configure event publishing and external library access. > Kind: Guide · Updated: Jul 4, 2026 ## Overview The Settings page in the CloudFiles Salesforce app (under Document Management) lets admins configure event publishing and external library access. From here, you can decide which file events generate Salesforce platform events and whether users connect with their own credentials or through a shared service account. ![](https://media.help.cloudfiles.io/dms-settings-sf/01.png) ## Service Account for Library Access By default, each Salesforce user connects to external storage with their own credentials. Enabling the Service Account option allows all users to access external file libraries using a single central integration user instead of individual user credentials. To turn this on, navigate to the CloudFiles app -> Document Management -> Settings and enable "Use service account for library access." All users will then have the same level of access to files and folders as the integration user, since all create/read/update/delete actions are performed with that account's permissions > **Note** — For more details, refer to the Using a Service Account guide. ## Configure CloudFiles Event CloudFiles can publish various events (both platform events and custom object events) in Salesforce to signal file-related actions. The Settings page now allows you to selectively enable or disable which CloudFiles events get published to Salesforce. This new feature provides finer control over your Flow automations – you can choose only the events you need, preventing unnecessary events from triggering Salesforce flows. The following event types are currently supported with toggles in Settings: - File Uploaded – Published when a file is uploaded to an external storage through CloudFiles in Salesforce. - Resource Updated – Published when a file or folder's metadata/properties are updated via CloudFiles. - Resource Moved – Published when a file or folder is moved to a different location in the external library via CloudFiles. - Resource Deleted – Published when a file or folder is deleted from the external storage using CloudFiles. This granular control allows admins to manage which CloudFiles actions should trigger Salesforce flows or processes, reducing noise and focusing on the events relevant to your use cases. ## Auto Assign Licenses When enabled, this setting automatically assigns a CloudFiles license to the most recent Salesforce user who accesses any CloudFiles component (such as the widget or content library), provided the user already has a relevant CloudFiles permission set. If the toggle is off, such users will still appear in the User Management list but with an Inactive (unassigned) license status. Users without any CloudFiles permission set will not be added as CloudFiles users at all, even if they access the widget or content library. For details on assigning permission sets to users, see the User Permissions Guide. --- # Features (Document Management & Sharing · Salesforce) https://help.cloudfiles.io/salesforce/features # Features This section highlights the powerful features of CloudFiles in Salesforce, covering advanced functionalities like custom widget flow actions and automation. > Kind: Guide · Updated: Jul 4, 2026 This section highlights the powerful features of CloudFiles in Salesforce. It walks you through using advanced functionalities like custom widget flow actions, automation etc. - CloudFiles Widgets Guide - This article provides an overview of CloudFiles Widgets, built to streamline document management, generation, and AI processing within Salesforce. These widgets enable seamless interaction with documents directly inside Salesforce supporting both internal workflows and external file sharing, with flexible configuration options for different object types. - CloudFiles Permissions - This article explains the custom permissions available in the CloudFiles app, which help control access to various features. It also introduces 3 pre-built permission sets based on common usage patterns which can be easily modified to fit specific organizational needs. - Content Library - In this article, you will see how CloudFiles Content Library tab can be used to explore any supported external storage from within Salesforce. - Field Service Lightning Support - This article explains how to set up a custom action in the Field Service Lightning app to integrate CloudFiles widgets. It outlines steps to create a Lightning Web Component action, apply specific widget configurations, and add the action to page layouts. - Image Resize Feature - This article introduces the Image Resize feature in CloudFiles, which allows users to resize and compress images using shareable links and simple URL parameters. - Using a service account - This article guides users on connecting external cloud storage services to Salesforce using a Service Account through the CloudFiles app. It explains how to access and explore Content Library, retrieve metadata, and share resources with Salesforce Public Groups. It also covers switching between Service and User Accounts for flexible document management and sharing. - Utilize CloudFiles widget in Custom Screen Flows - In this section, we explain a common use case that demonstrates how to use the CloudFiles widget effectively with screen flows to display related files on a record. - Widget Configuration Guide - In this article, we’ve covered how you can customize the appearance and behavior of the widget for each Salesforce object type using the Widget Configuration Settings. This guide walks you through the configuration options available for customizing the widget’s behavior and appearance. - Widget Flow Actions in CloudFiles - Enhance automation with CloudFiles' Custom Actions through internal widgets in Salesforce, allowing you to trigger Screen Flows or Autolaunched Flows directly from the widget. You can configure both Resource Actions (for individual resources) and List Actions (for multiple resources) to streamline your document management workflows. --- # CloudFiles Widgets Guide https://help.cloudfiles.io/salesforce/cloudfiles-widgets-guide # CloudFiles Widgets Guide CloudFiles Widgets are modular components designed to integrate seamlessly with Salesforce, enabling efficient document management, document generation, and document AI functionalities. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles Widgets are modular components designed to integrate seamlessly with Salesforce, enabling efficient document management, document generation, and document AI functionalities. These widgets allow users to manage, generate, and process documents directly within their Salesforce environment, offering flexibility and control over various document-related tasks. Here is a comprehensive list of CloudFiles widgets designed to meet your diverse document management, generation, and AI processing needs. - Content Library Widget - This widget centralizes document storage, making it easier to manage and organize shared files within a content library. It simplifies the retrieval and oversight of documents, making it easy to maintain a well-structured repository accessible to relevant team members. The Content Library Widget supports version control and metadata management, ensuring documents are up-to-date and easy to find. - CloudFiles Uploader Widget - Used in screen flows, this component enables file uploads directly to external storage like SharePoint, Google Drive, or AWS S3, bypassing Salesforce storage. It simplifies the upload process and manages files efficiently within external repositories. - Experience Cloud Widget - Ideal for external collaboration, this widget facilitates the sharing and collection of documents from Experience Cloud users. It ensures secure access and smooth document interactions with external stakeholders while maintaining data integrity within Salesforce. This widget is particularly useful when you need to engage with clients, partners, or vendors, providing them with a controlled environment to upload and download necessary files. - Internal Record Widget - This widget is designed for managing documents within internal record pages in Salesforce. It provides internal teams with direct access to files linked to specific records, streamlining the process of organizing, viewing, and updating documents without leaving the record page. It supports efficient document workflows, ensuring that all related files are easily accessible and securely managed within the Salesforce interface. - Embed CloudFiles widget in custom lightning web components - This article explains how you can embed cloudfiles widgets in your organization's custom code like any other packaged web component, highlighting the steps in detail. To learn more about configuring each widget type, refer to the detailed articles linked above. --- # Content Library Widget https://help.cloudfiles.io/salesforce/content-library-widget # Content Library Widget The Content Library Widget in CloudFiles is designed to manage documents within a centralized content library page. > Kind: Guide · Updated: Jul 4, 2026 The Content Library Widget in CloudFiles is designed to manage documents within a centralized content library page. It is ideal for organizing shared documents in one central location, making it easy to access, categorize, and maintain files for teams across an organization. ## Widget Configuration Once you select the Content Library Widget type, you'll be guided to further settings to customize the widget according to your requirements. The image below shows how this setting looks like. ![](https://media.help.cloudfiles.io/dms-content-library-widget-sf/01.png) ## Key Configuration Fields - Widget Type - Selected widget type - Widget Config Name - Provide a unique name for this widget configuration for easy identification - Widget Config Description - Detail the specific application or purpose of this widget configuration. - Configurations: Create Folder, File Upload and Folder Upload. - Widget Columns: Configure the columns to display in the widget. - The widget supports configurable columns, allowing users to customize the displayed information. - Click Add Columns to select the data fields (Name, Created By, Created On, Modified On) you want to display in the widget. - File Click Behavior: This setting determines what happens when a user clicks on a file within the widget. Users can choose from the following options: - Preview in Salesforce – Opens the file preview within Salesforce. - Open within library in a new tab – Opens the document in a separate tab within the document library. - None – Disables file click actions, requiring users to manually download files. - Widget Base Path: This sets the default location for retrieving documents, ensuring organized content and restricted access to relevant files. - Resource Actions: This defines custom actions at the resource level (individual file / folder level) that can be achieved with the help of flows. - List Actions: This defines custom actions for multiple resources (files and folders) that can be achieved with the help of flows. To read about these configuration fields in detail and understand how to implement them within your organization, please refer to the Content Library Widget Guide. ![](https://media.help.cloudfiles.io/dms-content-library-widget-sf/02.png) You can further configure the widget to support the following functionalities - Create Folder: Allows users to create new folders within the connected external storage. For detailed instructions, refer to Create Folder. File & Folder Upload: Enables users to upload individual files or entire folders directly to the external storage. For detailed configuration steps, please refer For detailed instructions, refer to File and Folder Upload. > There are two seperate toggles for file and folder upload to ensure that if CloudFiles user does not want to allow folder upload to the internal widget, they can do so. --- # CloudFiles Uploader Widget https://help.cloudfiles.io/salesforce/cloudfiles-uploader-widget # CloudFiles Uploader Widget The CloudFilesUploader LWC lets users upload files from Salesforce screen flows directly to external storage platforms like Google Drive, SharePoint, or AWS S3 instead of using Salesforce's native storage. > Kind: Guide · Updated: Jul 4, 2026 The CloudFilesUploader Component is a Lightning Web Component (LWC) designed to facilitate seamless file uploads within Salesforce screen flows. Unlike the standard Salesforce file upload feature, this component enables users to upload files directly to external storage platforms such as Google Drive, SharePoint, or AWS S3, helping manage Salesforce storage usage more efficiently. ![](https://media.help.cloudfiles.io/dms-cloudfiles-uploader-widget-sf/01.png) When files are uploaded through the CloudFiles Uploader, their names/labels are visible, making it easier to track and manage uploaded documents. > The uploaded files associated with a batch will not be visible upon reloading the page or after clicking "Finish." However, please be assured that the files have been successfully uploaded. ![](https://media.help.cloudfiles.io/dms-cloudfiles-uploader-widget-sf/02.png) ## Input Parameters Let us discuss each of the input parameters in detail in the sections below. ### API Name Please provide a unique name for the API component. ### Destination Parameters These parameters are needed to specify the storage location. You can get these parameters by viewing metadata details for a folder in the “Content Library” tab of the CloudFiles app in Salesforce. To get the value of Destination Parameters, please refer to the Create Folder flow action. - Library The library is the desired Cloud based drive where you wish to create the folder. This is a simple text field and you can enter one of these options - sharepoint, google, onedrive, dropbox, box, cloudfiles (for AWS S3). - Drive ID Drive ID of the resource(to be copied) for SharePoint or Google Drive. This parameter is not needed for other storages. - Folder ID This is the folder ID of the destination folder where the files will be copied. ### Upload Configuration Parameters These parameters are available in the CloudFiles File Uploader screen flow component, giving admins greater control over what users can upload. - Max Number of Files Limits how many files a user can upload in a single session. If left empty, uploads are unlimited. - Max File Size (MB) Sets the maximum allowed size for each individual file. Any file exceeding the specified size will be rejected. If left empty, no size restriction is applied. ![](https://media.help.cloudfiles.io/dms-cloudfiles-uploader-widget-sf/03.png) ## Output Parameters The component will return all the contents of the uploaded files as a Resource List. ![](https://media.help.cloudfiles.io/dms-cloudfiles-uploader-widget-sf/04.png) > **Note** — Output is session-specific. When the page is refreshed or closed, the output will be reset. ## Use Case The CloudFilesUploader component replaces the standard Salesforce file upload component in screen flows, enabling users to upload files directly to external storage. --- # Experience Cloud Widget (Guide) https://help.cloudfiles.io/salesforce/MPPL-experience-cloud-widget # Experience Cloud Widget The Experience Cloud Widget in CloudFiles is designed to facilitate seamless document sharing and collection from Salesforce Experience Cloud users. > Kind: Guide · Updated: Jul 4, 2026 The Experience Cloud Widget in CloudFiles is designed to facilitate seamless document sharing and collection from Salesforce Experience Cloud users. It is ideal for external collaboration, allowing users outside your internal team to access, upload, and manage documents securely. This widget bridges the gap between internal Salesforce users and external stakeholders, enabling bi-directional file syncing between your cloud storage (e.g., Google Drive, SharePoint, Dropbox), Salesforce objects, and community users. With this widget, businesses can efficiently manage document workflows for both internal and external users. ## Getting Started - Widget Set-up To set up the Experience Cloud Widget - - Install the CloudFiles app from Salesforce AppExchange. - Connect your cloud storage to Salesforce using CloudFiles. - Add the widget to your Experience Site using the Salesforce Site Builder. - Configure permissions to control access for external users. - For detailed setup instructions, refer Share files in experience cloud (community) . ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-sf/01.png) --- # Internal Record Widget https://help.cloudfiles.io/salesforce/internal-record-widget # Internal Record Widget Internal Record Widget is designed for managing documents within internal record pages in Salesforce, providing internal teams with direct access to files linked to specific records. > Kind: Guide · Updated: Jul 4, 2026 Internal Record Widget is designed for managing documents within internal record pages in Salesforce. It provides internal teams with direct access to files linked to specific records, streamlining the process of organizing, viewing, and updating documents without leaving the record page. It supports efficient document workflows, ensuring that all related files are easily accessible and securely managed within the Salesforce interface. ## Widget Configuration Once you select the Internal Record Widget type, you'll be guided to further settings to customize the widget according to your requirements. The image below shows how this setting looks like. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/01.png) ### Key Configuration Fields - Widget Config Name- Assign a unique name to identify this widget configuration easily. - Widget Config Description- Provide details about the specific application or purpose of this widget. - Widget Title- Enter the title text that will be displayed within the widget. - Configurations- Includes features like Create Folder, File Upload, Folder Upload, Delete Folder, Delete Files, Create Sharing Link, Allow Download, Allow Edit, Allow Replace, Open in App/Library, List Inaccessible Resources and Reset Navigation On Connect which can be enabled or disabled based on your needs. - Widget Columns- Configure the columns to display in the widget. Allows users to configure the data fields (e.g., Name, Created By, Created On, Modified On) displayed in the widget. Click "Add Columns" to customize the view. - Mandatory Widget Columns- Define required columns that must be filled when uploading a file. - Preview in Salesforce – Opens the file preview within Salesforce. - Open within library in a new tab – Opens the document in a separate tab within the document library. - None – Disables file click actions, requiring users to manually download files. - File Click Behavior - This setting determines what happens when a user clicks on a file within the widget. Users can choose from the following options: - Preview in Salesforce – Opens the file preview within Salesforce. - Open within library in a new tab – Opens the document in a separate tab within the document library. - None – Disables file click actions, requiring users to manually download files. - Widget Base Path - Sets the default document location, ensuring organized content and restricted access. - File Upload Restriction- Limits the allowed file types for internal users. - List View Controls - Controls how long text is displayed in the list view - Clip - Truncates long text. - Wrap- Displays text across multiple lines. - Resource Actions - Define custom actions in the widget at the resource level. - List Actions - Define custom actions in the widget at the list level - applicable for multiple resources selected together. To read about these configuration fields in detail and understand how to implement them within your organization, please refer to the Internal Record Widget Guide. ## Core Features of Internal Record Widget Following are the core features of Internal Record Widget and its configurations steps - ### 1 - Create Folder This configuration allows internal cloud users to create folders directly in the external folder attached to the Salesforce record. Follow the steps mentioned below: - Open CloudFiles Widget – Navigate to the widget in your record. - Click "New Folder" – Locate and select the New Folder button. - Enter Folder Name – Type the folder name in the popup. - Confirm – Click Save/Create to add the folder. Refer to the GIF below for a visual understanding- ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/02.gif) ### 2 - File and Folder Upload This configuration allows internal cloud users to upload files and folder to the connected external storage. There are two seperate toggles for file and folder upload to ensure that if CloudFiles user does not want to allow folder upload to the internal widget, they can do so. > The Folder upload toggle is provided for the user to enable/disbale upload of a folder to the widget based on use case however, when file upload is disabled in the widget configuration, the user can not see the upload file button at all so they can not upload folder as well even if the folder upload is toggled on, hence, it could be seen as a sub setting to allow/not allow folder upload on top of the file upload setting. > The folder upload toggle is on and hence the dropdown beside upload file will be visible and users can upload folder to the widget, by default. ### Uploading a File in the Widget Follow the steps listed below to upload a file - - Go to the Widget - Open the CloudFiles widget under the relevant account, opportunity, or record. - Click "Upload Files" - Locate the Upload Files button at the top. Click it to open the file selection window. - Select a File - Choose the file(s) from your system and confirm. - Confirmation The selected file(s) will be uploaded and listed in the widget. > A maximum of 100 items/files can be uploaded at a time through the upload feature. Refer to the GIF below for a visual understanding- ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/03.gif) ### Uploading a Folder in the Widget You can upload entire folders for better file organization by following these steps - - Go to the Widget - Open the CloudFiles widget under the relevant account, opportunity, or record. - Click "Upload Files" - Click the dropdown arrow next to Upload Files. - Select Folder - Choose Folder from the dropdown menu. - Choose a Folder - Select the folder from your system and confirm. - Confirmation - The folder and its contents will be uploaded and listed in the widget. > A maximum of 100 items/files can be uploaded at a time through the upload feature. Refer to the GIF below for a visual understanding- ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/04.gif) ### How to Use Drag and Drop for Folder Upload? The widget supports a drag-and-drop feature, making it easy to upload entire folders directly from your system. Follow these simple steps to use this feature: - Navigate to the Widget - Navigate to the CloudFiles widget under the relevant record (Account, Opportunity, or other record). - Locate Your Folder - Open your system’s File Explorer (Windows) or Finder (Mac) and locate the folder you want to upload. - Drag the Folder to the Upload Area - Click and hold the folder. Drag it into the widget’s file section where the existing files and folders are displayed. - Drop the Folder to Initiate Upload - Once you see the upload area highlight, release the folder. The system will automatically start uploading all the contents within the folder. Refer to the GIF below for a visual understanding- ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/05.gif) ### 3 - File and Folder Options The widget supports both single-item actions and bulk actions. Use single-item actions when working with one file or folder at a time. Use bulk actions when you need to act on multiple items simultaneously. ### Single-Item Actions Single-item actions let you open, rename, move, share, preview, download, and delete a file or folder directly from a record page, without leaving Salesforce. Use this approach when you need to act on one file or one folder at a time. Open the actions menu for a file or folder - Navigate to a Salesforce record (for example, an Account). - Click the CloudFiles Widget tab in the record's tab bar. - Locate the file or folder you want to act on. - Click the dropdown arrow (⌄) on the right side of the row. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/06.png) Folder Actions The following options appear as shown in the image below: ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/07.png) - Open in External Storage - Opens the folder in connected external storage in a new tab. - Download - Downloads the file to your local machine. - Rename - Renames the folder. - Move - Moves the folder to a different location within the connected storage. - Public Link - Generates a shareable public link for the folder. - Community Sharing - Shares the folder with Experience Cloud community users. - Delete - Permanently deletes the folder and its contents. File Actions The following options appear as shown in the image below: ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/08.png) - Open in External Storage - Opens the file in connected external storage in a new tab. - Download - Downloads the file to your local machine. - Preview - Opens an inline preview of the file within Salesforce. - Rename - Renames the file. - Move - Moves the file to a different folder. - Public Link - Generates a shareable public link for the file. - Community Sharing- Shares the file with Experience Cloud community users. - Delete- Permanently deletes the file. ### Bulk Actions Bulk actions let you move or generate public links for several items at once - directly from a record page, without leaving Salesforce. Use this approach when you need to act on two or more files or folders at the same time. - Navigate to a Salesforce record (for example, an Account). - Click the CloudFiles Widget tab in the record's tab bar. - Click the checkbox to the left of each file or folder you want to select. - Once two or more items are selected, a + button appears in the top-right of the file list. - Click the + to open the bulk actions menu. The following options appear as shown in the image below: ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/09.png) - Move - Moves all selected items to a folder you specify. - Public Link - Generates shareable public links for all selected items at once. - Download- Downloads the file to your local machine. Select the action you want to perform. These options are the same whether you have selected files, folders, or a mix of both. > **Note** — Bulk actions include a reduced set of options compared to single-item actions. Actions such as Rename, Preview, and Delete are only available when acting on one item at a time. ### 4 - Create Sharing Link This configuration allows users to create CloudFiles sharing link. ### Link Settings The Link Settings page allows you to configure various sharing options for a file link. Here's a breakdown of the settings: 1 - Status - Online- The link is active and accessible. - URL -The file can be accessed using the provided link. - Copy Link Button- Allows easy copying of the link to share with others. - Allow File Download- Users who access the link can download the file. 2 - Expiry - On (Date & Time fields) - Allows setting an expiration date and time for the link. Once expired, the link will no longer be accessible. - After (Views field) - Sets a limit on the number of times the link can be accessed. If this limit is reached, the link expires. > If both date/time and view count limits are set, whichever occurs first will cause the link to expire. 3 - Security - Password Protected - If enabled, users must enter a password to access the file. - Requires Email for Viewing - If enabled, users must provide an email before they can access the file. Refer to the GIF below for a visual understanding- ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/10.gif) ### File Analytics Dashboard Overview The File Analytics Dashboard provides detailed insights into how your shared files are being accessed and engaged with. Below is a breakdown of the key components: 1 - File Details - This section provides general information about the shared file. - File Name: Displays the name and format of the file. - Created By: Shows the name of the user who uploaded the file. - Created At: Indicates the date when the file was uploaded. - Total Views: The total number of times the file has been accessed. - Status: Displays whether the file is currently Live (accessible) or Expired. - Available Actions: - Edit Link Settings: Modify sharing permissions, expiration rules, and security settings. - Export Analytics: Download engagement data for reporting purposes. - Preview: Open and review the file. 2 - File Engagement Metrics - This section provides insights into how the file is being interacted with. - Total Time Spent: The total duration for which the file has been viewed. - Downloads: The number of times the file has been downloaded. - Unique Views: The count of distinct viewers who accessed the file. - Total Views: The total number of times the file has been opened, including multiple views by the same person. - Engagement Graph: A visual representation of the total viewing duration. 3 - Viewer Details - This section tracks location-based access and engagement data. | Parameter | Description | |---|---| | Views | Displays the geographic location from which the file was accessed. | | Email | Shows the email address of the viewer (if email tracking is enabled). | | Time Spent | Indicates the duration the file was viewed. | | Sessions | Tracks the number of times the file was opened. | | Last Viewed On | Displays the last date when the file was accessed. | Refer to the GIF below for a visual understanding- ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/11.gif) ### 5 - Open In App/Library This configuration allows user to enable/disable button to open file/folder in app or respective library in the internal record widget. > The Open in App/Library button is visible by default in the internal record widget. The image below shows how internal record widget looks when the Open in App/Library toggle in the widget configuration is on. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/12.png) ### 6 - Delete File This configuration allows internal cloud users to delete files from connected external storage. Follow the steps mentioned below - - Locate the File – Open the CloudFiles widget under the relevant record and locate the file. - Open Options – Click the dropdown button next to the file. - Select "Delete" – Choose Delete and confirm the action. > **Note** — This permanently deletes the file. Refer to the GIF below for a visual understanding- ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/13.gif) ### 7 - Delete Folder This configuration allows internal cloud users to delete folders from connected external storage. Follow the steps mentioned below - - Locate the Folder – Open the CloudFiles widget under the relevant record and locate the folder. - Open Options – Click the dropdown button next to the folder. - Select "Delete" – Choose Delete and confirm the action. > **Note** — This permanently removes the folder and its contents. Refer to the GIF below for a visual understanding- ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/14.gif) ### 8 - Open in Folder This configuration allows internal cloud users to directly jump to the actual file location when searching for a file. Follow the steps mentioned below - - Locate the File – Open the CloudFiles widget under the relevant record and locate the file by typing its name in the search bar. - Open Options – Click the dropdown button next to the folder. - Select "Open in Folder" – Choose Open in Folder ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/15.gif) ![](https://media.help.cloudfiles.io/dms-internal-record-widget-sf/16.gif) --- # Embed CloudFiles widget in custom lightning web components https://help.cloudfiles.io/salesforce/embed-cloudfiles-widget-in-custom-lightning-web-components # Embed CloudFiles widget in custom lightning web components Like all other packaged lightning web components, you can embed cloudfiles widgets in your organization's custom code. > Kind: Guide · Updated: Jul 4, 2026 Like all other packaged lightning web components, you can embed cloudfiles widgets in your organization's custom code. This would require the steps highlighted below. ## Step 1 : Enable Lightning Web Security The goal of lightning web security is to prevent Lightning components from interfering with or accessing data that belongs to platform code or components from other namespaces. Here's a detailed article from Salesforce on this. You would need to enable this in settings in order to cross reference web components. To use Lightning Web Security in an org: - From Setup, in the Quick Find box, enter Session, and then select Session Settings. - On the Session Settings page, select Use Lightning Web Security for Lightning web components and Aura components and save. ![](https://media.help.cloudfiles.io/dms-embed-cloudfiles-widget-in-custom-lightning-web-components-sf/01.png) ## Step 2 : Use the attachments widget in custom code All CloudFiles components can be referred to with the namespace cldfs, You would use this namespace to access global classes and components from the CloudFiles managed package. To use the widget as a child component in a custom lwc, you would use it like any other child component, with the exception of replacing the first c with cldfs, signifying a custom namespace. Apart from this, there are some mandatory inputs that the component needs in order to work properly. These would be the record-id and object-api-name The below code block displays a simple example: Similary you can embed the Experience Cloud Widget as follows: --- # CloudFiles Permissions https://help.cloudfiles.io/salesforce/cloudfiles-permissions # CloudFiles Permissions Learn about the different permissions and permission sets offered by the CloudFiles app, and how to manage user access via pre-packaged permission sets such as CloudFiles Admin User. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles app comes with custom permissions that can be used to control the access to various features of the app. Additionally, we have created a few permission sets based on commonly used combinations of these permissions. You can always modify these permission sets according to your needs. ## Permissions - Connect or disconnect files & folder - Allows a user to link/unlink a file or folder to a record in Salesforce - Connect files & folder - Allows a user to only link a file or folder to a record in Salesforce - Disconnect files & folder - Allows a user to only unlink a file or folder to a record in Salesforce ![](https://media.help.cloudfiles.io/dms-cloudfiles-permissions-sf/01.png) ![](https://media.help.cloudfiles.io/dms-cloudfiles-permissions-sf/02.png) - Create Folder - Allows user to create sub folders inside a record's connected folders. In the UI, it controls the visibility of following action ![](https://media.help.cloudfiles.io/dms-cloudfiles-permissions-sf/03.png) - Delete Files & Folders - Allows a user to delete a file or a folder from record page. This also deletes the files in the underlying external storage. In the UI, it controls the visibility of following actions ![](https://media.help.cloudfiles.io/dms-cloudfiles-permissions-sf/04.png) - Share Files & Folders - Allows a user to share files & folders externally, using a CloudFiles sharing link. For a file already shared, this permissions also controls the access for updating link settings ![](https://media.help.cloudfiles.io/dms-cloudfiles-permissions-sf/05.png) - Allow Sharing with Community - Allows an internal person to share a particular file/folder with community users or experience cloud users. - Upload Files - Allows a user to upload files through the CloudFiles widget. In the UI, this permission controls the visibility of "Upload Files" button & "Drag and Drop" functionality ![](https://media.help.cloudfiles.io/dms-cloudfiles-permissions-sf/06.png) - Allow Download - This permissions allows a user to download files from CloudFiles widget - View Analytics - If a file/folder is being shared externally using a CloudFiles link, this permission allows a user to view analytics like who is looking at the file/folder, how much time they're spending on it - View Sharing Settings - If a file/folder is being shared externally using a CloudFiles link, this permission allows a user to view the settings of the link, like who can access the link, if there is a password on the link etc. ## Permission Sets CloudFiles comes with few pre-packaged permission sets. You can always create a custom permission set using CloudFiles permissions described above. 1 - CloudFiles Admin User - This permission set is suitable for admins who should have access to all CloudFiles functionality within Salesforce, including billing. It contains all the permissions listed the image below: ![](https://media.help.cloudfiles.io/dms-cloudfiles-permissions-sf/07.png) 2 - CloudFiles Standard User - This permission set is suitable for all internal users (company employees) who should have access to all CloudFiles functionality except admin level features. It contains all the permissions listed the image below: ![](https://media.help.cloudfiles.io/dms-cloudfiles-permissions-sf/08.png) 3 - CloudFiles External User - This permission set is suitable for experience cloud users(community users). It contains all the permissions listed the image below: ![](https://media.help.cloudfiles.io/dms-cloudfiles-permissions-sf/09.png) 4 - CloudFiles Field Service User - This permission set is suitable for field service users . It contains all the permissions listed the image below: ![](https://media.help.cloudfiles.io/dms-cloudfiles-permissions-sf/10.png) ## Permission Set Assignment To reduce the setup time, CloudFiles automatically assigns following permission sets on installation - - CloudFiles Admin User - This is assigned to all users with "System Administrator" profile - CloudFiles Standard User - This is assigned to all internal users except administrator You can change these assignments according to your needs. When new users are added to your Salesforce org, they would need to be assigned CloudFiles permission sets manually. You can also setup a flow to automatically do it when users are added. Please feel free to reach out to us for any help regarding this. To manually assign permission sets, please follow the steps below - Go to Setup > Permission Sets. - Select appropriately among the CloudFiles Admin User, CloudFiles Standard User or CloudFiles External User permission set - Click on Manage Assignments. Then Click Add Assignment. Choose the users you want to add the selected permission set for. - Follow the prompts to finish the assignment process. --- # Content Library (Guide · Salesforce) https://help.cloudfiles.io/salesforce/content-library # Content Library Learn how to explore supported external storage in Salesforce using the CloudFiles Content Library tab, including accessing metadata values for files and folders. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles Content Library tab can be used to explore any supported external storage from within Salesforce. To use this, just select CloudFiles app from the app launcher & click the "Content Library" tab ![](https://media.help.cloudfiles.io/dms-content-library-sf/01.png) One of the primary usage of Content library is to get metadata values for files & folders to be used in flow actions and apex. Examples of metadata values are - file/folder id, library, drive id etc. To get the metadata values, simply click on the dropdown icon in far right on the item row. Click "View Metadata". You can also click the copy icon to quickly copy the values to clipboard ![](https://media.help.cloudfiles.io/dms-content-library-sf/02.png) --- # Field Service Lightning Support https://help.cloudfiles.io/salesforce/field-service-lightning-support # Field Service Lightning Support Steps to create a custom action for the field service lightning app so CloudFiles can be accessed from the widget. > Kind: Guide · Updated: Jul 4, 2026 Follow the steps below to create custom action in field service lightning app. Steps to create custom action for field service lightning app - - To use goto the setup -> Object Manager -> select object you want to have access the widget with - Select Button Links and action -> New action ![](https://media.help.cloudfiles.io/dms-field-service-lightning-support-sf/01.png) - In the new action form select action type as Lightning Web Component and the lightning web component as cldfs:cloudFilesAttachnmentAction - If you need a special widget configuration to limit the action inside the widget at the end of the "Name" add "wcid_XXX" XXX being the 32 digit widget config it. The limit for name is 80 characters so should not be an issue. eg. Show_Cloudfiles_wcid_55sgqbfgf681jrpgvv2tm195sm2wq3yf - Save the action. ![](https://media.help.cloudfiles.io/dms-field-service-lightning-support-sf/02.png) - Go to Page layout -> Account layout - You will see the newly created action under mobile and lightning action. - drag and drop the action into the Salesforce Mobile and Lightning Experience Actions and click save. - Now you will be able to see and use the action in the account page for both web and mobile ui. ![](https://media.help.cloudfiles.io/dms-field-service-lightning-support-sf/03.png) --- # Image Resize Feature https://help.cloudfiles.io/salesforce/image-resize-feature # Image Resize Feature CloudFiles lets you resize and compress images directly through its shareable links using simple URL parameters. > Kind: Guide · Updated: Jul 4, 2026 ## Overview CloudFiles lets you resize and compress images directly through its shareable links. With simple URL parameters, you can define image dimensions, control quality, or limit file size—making it easier to deliver optimized visuals without any manual editing or external tools. Delivering the right image size is crucial for performance, bandwidth management, and design flexibility. Large images can slow down email load times, consume unnecessary bandwidth, and disrupt the visual consistency of web pages. By resizing images on the fly, CloudFiles ensures that visuals are optimized for their intended use, enhancing user experience and operational efficiency. > **Note** — This is an add-on feature that works only with CloudFiles library, AWS S3, and Azure Blob storage. Please contact the CloudFiles support team to enable it for your organization. ## Use Cases The image resize feature can be useful across multiple workflows. Sales and marketing teams can share compressed product images, banners, or visuals in client emails or pitch decks, improving load times and delivery performance. It's also a powerful tool for automation workflows such as CRM triggers, webhook-based systems, or email campaigns. For example, an automation that generates proposal documents or sends follow-up emails can fetch a resized product image directly from the CloudFiles link—eliminating the need for manual resizing or compression. ## Parameters To use the resize feature, the image link must be downloadable (i.e., include dl=1). Once set, the following optional parameters can be added to the URL: - width: Set the target image width in pixels. - height: Set the image height. - quality: Set image quality (1–100). - max_bytes: Limit the image file size in bytes. Example: https://test.cloudfiles.io/hBN8q1gfXRb?dl=1&width=1200&max_bytes=100000 This resizes the image to 1200px wide and compresses it to under 100KB—perfect for use in emails or embedding in lightweight pages. > **Note** — When max_bytes is specified, CloudFiles automatically adjusts quality to fit the size limit, so you don’t need to handle compression manually. --- # Using a service account https://help.cloudfiles.io/salesforce/using-a-service-account # Using a service account Connect and use an External Cloud Storage Service Account in Salesforce to access the Content Library, share resources with Public groups, and switch between Service and User accounts. > Kind: Guide · Updated: Jul 4, 2026 ## Connect your Cloud Storage to Salesforce Connect your External Cloud Storage Service Account to your Salesforce org utilizing the Setup page in CloudFiles app by clicking on the external storage of choice and log into your service account. For detailed steps, follow Automations. ## Accessing the Content Library Once the setup is complete, you can access the connected Library from within Salesforce using the "Content Library" tab of the CloudFiles app. From the CloudFiles Content Library tab, the Service Account (admin) user can explore any supported external storage and get metadata values for files & folders to be used in flow actions and apex. ![](https://media.help.cloudfiles.io/dms-using-a-service-account-sf/01.png) ## Sharing with Public groups From the Content Library interface the Service Account (admin) user can share any of the resources from the connected Library to make them accesible to a specific Salesforce Public group users. - To share any resource, simply click on the dropdown icon in far right on the item row. Click "Share". ![](https://media.help.cloudfiles.io/dms-using-a-service-account-sf/02.png) - In the sharing window pop-up you can search and select the public group with whom you wish to share the access with. This adds up the selected group to the "Who Can Access" list. - You can view and manage the "Who Can Access" list from the sharing window itself. ![](https://media.help.cloudfiles.io/dms-using-a-service-account-sf/03.png) ## Switching between Accounts From the Content Library interface the Service Account (admin) user can switch between the Service Account and User Account by clicking the gear icon against the library and selecting the perspective. ![](https://media.help.cloudfiles.io/dms-using-a-service-account-sf/04.png) --- # Utilize CloudFiles widget in Custom Screen Flows https://help.cloudfiles.io/salesforce/utilize-cloudfiles-widget-in-custom-screen-flows # Utilize CloudFiles widget in Custom Screen Flows A common use case that explains how to use the CloudFiles widget effectively with screen flows to display related files on a record. > Kind: Guide · Updated: Jul 4, 2026 Detailed below is a common use case that explains how to use CloudFiles widget effectively with screen flows to display related files on a record. ## Use Case: A company wants to ensure that folders and files attached in an Account’s CloudFiles widget are easily accessible from related Contact records. Since the files and folders are attached on the Account instead of the contact, directly adding the widget to the Contact's record page will not be useful. Instead, we utilize a screen flow which embeds the widget. This is how the flow builder looks: ![](https://media.help.cloudfiles.io/dms-utilize-cloudfiles-widget-in-custom-screen-flows-sf/01.png) Search for CloudFiles in the Components tab in a screen element and drag and drop the first component named CloudFiles ![](https://media.help.cloudfiles.io/dms-utilize-cloudfiles-widget-in-custom-screen-flows-sf/02.png) Use a Get Records element to dynamically get the related accountId and pass it through the Record Id parameter of the component Add this screen flow to your target Contact record page and you'll be able to see Account related files directly from the contact record. ![](https://media.help.cloudfiles.io/dms-utilize-cloudfiles-widget-in-custom-screen-flows-sf/03.png) --- # Widget Configuration Guide https://help.cloudfiles.io/salesforce/widget-configuration-guide # Widget Configuration Guide Overview of CloudFiles widget types (internal record, experience cloud, content library) with links to their detailed configuration guides. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles offers various types of widgets for managing files and folders directly from your Salesforce records. The internal record widget is for your internal records, the content library is for accessing files in an independent tab outside the records and the experience cloud widget can be used to enable file / folder access for experience cloud users. These widgets are highly configurable, allowing administrators to tailor the user experience, permissions, and file behavior to suit different business needs. Whether you're collaborating internally or sharing documents externally, each widget type offers a unique set of customization options to optimize document workflows. Below are the detailed guides for each widget type: - Internal Record Widget Guide - Manage and customize document interactions directly on Salesforce object record pages for internal users. - Experience Cloud Widget Guide - Enable secure file sharing and collection from external users through Salesforce Experience Cloud portals. - Content Library Widget Guide - Centralize and organize shared documents in a dedicated library tab accessible across teams. --- # Internal Record Widget Guide https://help.cloudfiles.io/salesforce/internal-record-widget-guide # Internal Record Widget Guide Explains how to create and use Internal Record Widget configurations in CloudFiles for Salesforce, covering every configuration field—from widget name/title/columns to resource and list actions—and how each affects the widget's appearance and behavior on internal record pages. > Kind: Guide · Updated: Jul 4, 2026 ## Overview The Internal Record Widget is placed on your internal records pages (like Accounts/Opportunities/Leads etc.) and showcases the files in your external storage that are linked to this record. The base widget appears as follows: ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/01.png) Using the Widget Configuration Settings, one can customize the appearance and behavior of the widget for each Salesforce object type. This guide walks you through the configuration options available for customizing the widget’s behavior and appearance. From setting titles to defining custom actions via Flows, this article will help admins tailor the widget to suit different use cases across teams and objects. ## Creating Widget Configuration To create custom configurations, open the CloudFiles app in Salesforce, go to Document Management → Widget Configuration → Create New → Select the appropriate Widget Type dropdown. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/02.gif) Once you start creating a new configuration, there are multiple fields that can be set to customize the widget as per your requirements. ## Using the Widget Configuration After creating the desired configuration for the widget, the next step is to enable it on the record page. For each configuration created, a unique configuration ID will be generated, which can be used to apply this setting on the object page. This ID can be copied from the CloudFiles app in Salesforce by going to Document Management → Widget Configuration. For activating a configuration, head over to the Lightning App Builder (by clicking on the Settings icon on top right → Edit Page), select the CloudFiles widget, add the configuration id in the right hand panel, and click Save. The desired functionality of the widget will appear on the record page after refreshing. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/03.gif) > **Note** — This method of adding widget configuration is applicable to the Internal Record widget type. For other widget types, refer to the appropriate widget in the Widget Configuration Guide. ## Key Configuration Fields This section covers all the settings that are available in the widget configuration. ### 1. Widget Config Name Assigns a name to identify this widget configuration easily. This name appears only in the “Widget Configuration” tab and not on the widget itself on the record page. This field can be left blank and the default value will be “Internal Record Widget”. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/04.png) ### 2. Widget Config Description Provides details about the specific application or purpose of this widget. This description will also appear only in the “Widget Configuration” tab. This field can be left blank and the default value is: “Widget used to manage documents on internal record page”. ### 3. Widget Title The title that will be displayed on the widget on the record page. If this field is left blank and only a single folder is connected, the widget will automatically display the name of that folder. If multiple folders are connected without specifying the title, the widget will default to displaying “Home”. However, if an admin explicitly defines a title in this field, it will override the default behavior and display the custom title, regardless of the connected folder names. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/05.png) ### 4. Configurations Controls which file and folder actions will be made available to internal cloud users in the widget. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/06.png) The ten basic actions are: - Create Folder - Enables the “New Folder” button on the top right side of the widget to create a new folder in the directory displayed on screen. - File Upload - Adds the “Upload Files” button on the widget. Files will be uploaded to the directory currently open within the widget. - Folder Upload - Option available in the dropdown next to “Upload Files” button. - Delete Folder - Allows users to delete folders from the dropdown menu next to the folder name. - Delete File - Can be accessed from the dropdown menu next to the filename. - Create Sharing Link - Allows internal cloud users to create a sharing link. Can be accessed by clicking on the settings dropdown on the top right of the widget. - Allow Download - Allows internal users to be able to download files directly from the LWC. - Allow Edit - When enabled, allows internal cloud users to be able to edit files through the previewer. - Allow Replace - Allows internal users to be able to replace files. - Open in App/Library - Provides the option to open the file in its respective app (like Word, PowerPoint, Excel) - List Inaccessible Resources - This setting is turned off by default. When it's off, the widget will only show files and folders that the user has access to — just like your external storage. If you turn it on, users will also see files and folders they don’t have access to, but they won’t be able to open them. This can be helpful if team members need to know which files exist so they can request access when needed. - Reset Navigation on Connect - Makes the 'Connect New' modal always default to the root page (list of sites/drives). If turned off, the modal will show the last accessed location. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/07.png) ### 5. Widget Columns Define which columns or file headers to display within the widget (such as Name, Created By, Created On, Modified On, etc.). The available headers vary by external storage type — Google Drive, SharePoint, OneDrive, etc. The Apply columns offer these options: This drive only: Selected columns will be displayed only for files/folders connected to the selected drive in the CloudFiles widget. All drives: The selected columns will be displayed on files/folders being connected from all drives in the CloudFiles widget. All sites (SharePoint only): The selected columns will be displayed on files/folders being connected from all sites in the CloudFiles widget. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/08.png) Only the headers that moved to the right side of the configuration screen will appear in the widget. If left blank, the widget defaults to displaying Name, Created By, and Created On headers. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/09.png) Here’s how the widget shows the columns that have been selected above - ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/10.png) ### 6. Mandatory Widget Columns This advanced feature allows admins to specify which column values must be filled in when uploading files or folders. One can set up these mandatory fields by configuring this setting. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/11.png) For example, if you set “Title” as a mandatory column, users will be required to fill it in when uploading a new file or folder. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/12.png) ### 7. File Click Behavior The action that will occur after the user clicks on a particular file can be defined using this setting. - Preview in Salesforce – Opens a preview pop-up window within the same page to view the file. This is also the default option. - Open within library in a new tab – Redirects to new tab and opens the file from within your shared drive. - None – Disables file click actions, requiring users to manually download files to view them. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/13.png) ### 8. Widget Base Path Use Base Path when you want a widget to show only a specific folder (or a few specific folders), instead of everything connected to the record. This is useful when a record has more than one folder shared to it and you only want a widget to show the one that's relevant, or when you want to keep people within one folder structure rather than letting them browse everything above it. How to set it up - Go to Document Management → Widget Configuration, and open the configuration you want to update (or create a new one). - Scroll to Widget Base Path and click Add Paths. - Browse to the folder you want the widget to show, and select it. You can add more than one folder if the widget should pull from a few different locations. - Save the configuration, then apply it to the record page through Lightning App Builder. Once set, the widget will only display files and folders within the paths you've added. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/d0c67ee4.gif) Common use cases - Show a clean, restricted view instead of everything shared to a record. Maintain the folder structure while only surfacing what's relevant, keeping the view uncluttered and keeping people out of content they shouldn't reach. - Reach beyond the connected folder — move files up into a parent. Without Base Path, users can only move files within the connected folder and its children. With Base Path pointed at a parent, that range widens to include the parent itself. - Enforce one consistent folder structure across every record of an object type. Base Path is set once on a configuration and applies to every record using it, so every record of a given type opens into the same structure, regardless of who connected what to it. We recommend reaching out to the CloudFiles support team to get this configuration defined accurately for your use case. ### 9. File Upload Restrictions This setting can be used to define what file types are allowed to be uploaded to the widget. By default, there are no restrictions. If you select one or more file types from the list, all other file types will be blocked from upload. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/14.png) ### 10. List View Control This setting can be used to control how long text will be displayed in the list view. This option is only available for certain headers that include a dropdown arrow, such as “Created By”. There are two possible options: - Clip – Text beyond column width gets truncated - Wrap – Entire text will be displayed across multiple lines. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/15.png) ### 11. Resource Actions This setting defines the list of actions that can be performed on a specific file or folder within the widget. When a user clicks the dropdown next to a file or folder name, a list of default actions —such as Rename, Move, Share, Download, etc. — is displayed. In addition to these, admins can define custom actions using Salesforce Flows. These custom actions can be added to the same dropdown list and offer extended functionality based on business needs. Flows can either be autolaunched (running in the background without user input) or screen flows (which involve user interaction). ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/16.png) For example, a custom action could allow users to attach a selected document directly to an email, triggered right from the widget. The default and custom actions appear on clicking the dropdown beside the file name - ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/17.png) ### 12. List Actions List actions work like resource actions but apply to multiple selected files or folders. Only “Move” and “Share” options are provided as default, but other custom actions like “Bulk Delete” can be set up using user-created flows. You can also search for a set of files using the search bar on top of the widget, and perform your custom action on the selection. ![](https://media.help.cloudfiles.io/dms-internal-record-widget-guide-sf/18.png) --- # Experience Cloud Widget Guide https://help.cloudfiles.io/salesforce/experience-cloud-widget-guide # Experience Cloud Widget Guide The Experience Cloud Widget offers a secure way to share and collect documents from users on Salesforce Experience Cloud sites. > Kind: Guide · Updated: Jul 4, 2026 ## Overview The Experience Cloud Widget offers a secure way to share and collect documents from users on Salesforce Experience Cloud sites. It’s built for external engagement, giving community users like partners and customers the ability to manage files without needing access to your internal Salesforce setup. The base widget appears as follows: ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/01.png) By connecting cloud storage platforms (such as Google Drive or SharePoint) with Salesforce records and Experience Cloud pages, the widget streamlines document flow between internal teams and external stakeholders. It also supports extensive configuration options, allowing admins to tailor user permissions, visible folders, and available actions to fit specific business needs. ## Creating Widget Configuration You can customize the appearance and behavior of the widget by creating your own configurations. To create custom configurations, open the CloudFiles app in Salesforce, go to Document Management → Widget Configuration → Create New → Experience Cloud Widget ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/02.gif) ## Using the Widget Configuration To use the created configuration, copy the Configuration ID from the widget configuration page, head over to the Experience Cloud Builder, select the CloudFiles component, paste the ID on the right hand panel, and finally save and publish the site. ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/03.gif) > **Note** — This method of adding widget configuration is applicable to the Experience Cloud widget type. For other widget types, refer to the appropriate widget in the Widget Configuration Guide. ## Key Configuration Fields ### 1. Widget Config Name This field is used to assign a name to the widget configuration. It helps administrators identify and manage different configurations within the “Widget Configuration” tab. It does not appear on the actual widget seen by Experience Cloud users. ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/04.png) ### 2. Widget Config Description Use this field to provide a brief description of the use case or scope of the configuration. It is visible only to admins in the “Widget Configuration” list view and can help clarify which community or object it supports. ### 3. Widget Title This is the title that will appear on the widget as seen by end users within the Experience Cloud page. If this field is left blank and a single folder is connected, or if multiple folders are connected without a title, the widget displays “Home”. If a custom title is defined here, it will override default behavior and appear as the static title. ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/05.png) ### 4. Configurations These are the actions that external users (Experience Cloud users) will be able to perform within the widget. You can toggle each one ON or OFF based on what level of control and functionality you want to offer. ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/06.png) Supported actions: - Create Folder – Adds the “New Folder” button for creating folders directly. - File Upload – Allows uploading individual files to the selected directory. - Folder Upload – Enables full folder uploads from the local device. - Delete Folder – Permits folder deletion from the widget. - Delete File – Lets users delete uploaded files. - Create Sharing Link – Generates a shareable link for public access. - Allow Download – Enables the download option on files within the widget. ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/07.png) ### 5. Widget Columns Defines which metadata columns (headers) are visible in the widget’s file list view. Common headers include - Name, Created By, Created On, Modified On, etc. Headers vary slightly depending on the external storage provider (e.g., Google Drive, OneDrive). Only headers moved to the right panel of the configuration screen will be shown in the widget. If left blank, default headers will be shown: Name, Created By, Created On. ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/08.png) Here’s how the widget shows the columns that have been selected above - ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/09.png) ### 6. Mandatory Widget Columns This setting enforces required metadata fields when files or folders are uploaded by Experience Cloud users. ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/10.png) For example, setting “Title” as mandatory means the user must enter a title during upload. This ensures important metadata is always captured before files are saved. ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/11.png) ### 7. Widget Base Path Use Base Path when you want a widget to show only a specific folder (or a few specific folders), instead of everything connected to the record. This is useful when a record has more than one folder shared to it and you only want a widget to show the one that's relevant, or when you want to keep people within one folder structure rather than letting them browse everything above it. How to set it up - Go to Document Management → Widget Configuration, and open the configuration you want to update (or create a new one). - Scroll to Widget Base Path and click Add Paths. - Browse to the folder you want the widget to show, and select it. You can add more than one folder if the widget should pull from a few different locations. - Save the configuration, then apply it to the record page through Lightning App Builder. Once set, the widget will only display files and folders within the paths you've added. Common use cases - Show a clean, restricted view instead of everything shared to a record. Maintain the folder structure while only surfacing what's relevant, keeping the view uncluttered and keeping people out of content they shouldn't reach. - Reach beyond the connected folder — move files up into a parent. Without Base Path, users can only move files within the connected folder and its children. With Base Path pointed at a parent, that range widens to include the parent itself. - Enforce one consistent folder structure across every record of an object type. Base Path is set once on a configuration and applies to every record using it, so every record of a given type opens into the same structure, regardless of who connected what to it. We recommend reaching out to the CloudFiles support team to get this configuration defined accurately for your use case. ### 8. File Upload Restrictions Use this setting to define what file types are allowed to be uploaded. By default, all file types are permitted. Once specific formats (e.g., pdf, docx) are selected, only those will be allowed, and others will be blocked from being uploaded. This is useful for controlling content quality and reducing storage clutter. ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/12.png) ### 9. List View Controls Controls how long text is displayed in the file/folder list view, especially for columns with lengthy values. Two options are available: - Clip – Truncates overflowing text with ellipsis - Wrap – Displays the entire text over multiple lines This can improve readability or optimize space depending on your UI layout. Please note that this configuration is only applicable for columns that have dropdown arrow beside the header. ![](https://media.help.cloudfiles.io/dms-experience-cloud-widget-guide-sf/13.png) --- # Content Library Widget Guide https://help.cloudfiles.io/salesforce/content-library-widget-guide # Content Library Widget Guide The Content Library Widget in CloudFiles manages documents within a centralized content library page, making it easy to access, categorize, and maintain files for teams across an organization. > Kind: Guide · Updated: Jul 4, 2026 ## Overview The Content Library Widget in CloudFiles is designed to manage documents within a centralized content library page. It is ideal for organizing shared documents in one central location, making it easy to access, categorize, and maintain files for teams across an organization. The base widget appears as follows: ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/01.png) This guide walks you through the configuration options available for customizing the widget's behavior. ## Creating Widget Configuration You can configure the widget as per your requirements by going to the CloudFiles App → Document Management → Widget Configuration → Create New → Content Library Widget. Once you select this widget type, you'll be guided through further settings to customize the widget. The setup steps are as follows: ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/02.gif) > **Note** — Since there is only one content library, you can create only one configuration of this type, which will be auto-assigned. ## Key Configuration Fields ### 1. Widget Config Name This field is used to assign a name to the configuration for easy identification. This name appears only in the “Widget Configuration” tab, and not on the content library page. This field can be left blank and the default value will be “Content Library Widget”. ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/03.png) ### 2. Widget Config Description This field is used to assign a short description to the configuration. This description will also appear only in the “Widget Configuration” tab. This field can be left blank and the default value is: “Widget used to manage documents on the content library page”. ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/04.png) ### 3. Configurations The control actions available in the widget can be toggled on or off here - ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/05.png) The 3 basic actions provided are - - Create Folder: Enables the “New Folder” button to create a folder directly from the widget. Reduces context switching to go to the external storage. For detailed instructions, refer to Create Folder - Folder Upload: Enables users to upload entire folders directly to the external storage. - File Upload: Enables users to upload individual files directly to the external storage. For detailed instructions, refer to File and Folder Upload. ### 4. Widget Columns This configuration controls what column names will appear on the Content Library page. The available headers vary by external storage type — Google Drive, SharePoint, OneDrive, etc. Only the headers moved to the right side of the configuration screen will appear in the widget. If left blank, the widget defaults to displaying Name, Created By, and Created On headers. ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/06.png) The selected headers will appear on the content library page as follows - ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/07.png) ### 5. File Click Behaviour The action that will occur after the user clicks on a particular file can be defined using this setting. - Preview in Salesforce – Opens a preview pop-up window within the same page to view the file. This is also the default option. - Open within library in a new tab – Redirects to a new tab and opens the file from within your shared drive. - None – Disables file click actions, requiring users to manually download files to view them. ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/08.png) ### 6. Widget Base Path Use Base Path when you want a widget to show only a specific folder (or a few specific folders), instead of everything connected to the record. This is useful when a record has more than one folder shared to it and you only want a widget to show the one that's relevant, or when you want to keep people within one folder structure rather than letting them browse everything above it. How to set it up - Go to Document Management → Widget Configuration, and open the configuration you want to update (or create a new one). - Scroll to Widget Base Path and click Add Paths. - Browse to the folder you want the widget to show, and select it. You can add more than one folder if the widget should pull from a few different locations. - Save the configuration, then apply it to the record page through Lightning App Builder. Once set, the widget will only display files and folders within the paths you've added. Common use cases - Show a clean, restricted view instead of everything shared to a record. Maintain the folder structure while only surfacing what's relevant, keeping the view uncluttered and keeping people out of content they shouldn't reach. - Reach beyond the connected folder — move files up into a parent. Without Base Path, users can only move files within the connected folder and its children. With Base Path pointed at a parent, that range widens to include the parent itself. - Enforce one consistent folder structure across every record of an object type. Base Path is set once on a configuration and applies to every record using it, so every record of a given type opens into the same structure, regardless of who connected what to it. We recommend reaching out to the CloudFiles support team to get this configuration defined accurately for your use case. ### 7. Resource Actions This setting defines the list of actions that can be performed on a specific file or folder within the widget. When a user clicks the dropdown next to a file or folder name, a list of default actions —such as View Metadata, Move, Share, Delete, etc. — is displayed. In addition to these, admins can define custom actions using Salesforce Flows. These custom actions can be added to the same dropdown list and offer extended functionality based on business needs. Flows can either be autolaunched (running in the background without user input) or screen flows (which involve user interaction). ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/09.png) For example, a custom action could allow users to attach a selected document directly to an email, triggered right from the widget. The default and custom actions appear on clicking the dropdown beside the file name - ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/10.png) ### 8. List Actions List actions work like resource actions but apply to multiple selected files or folders. Only “Move” option is provided as default, but other custom actions like “Bulk Delete” can be set up using user-created flows. You can also search for a set of files using the search bar on top of the widget, and perform your custom action on the selection. ![](https://media.help.cloudfiles.io/dms-content-library-widget-guide-sf/11.png) --- # Widget Flow Actions in CloudFiles https://help.cloudfiles.io/salesforce/widget-flow-actions-in-cloudfiles # Widget Flow Actions in CloudFiles Enhance automation with CloudFiles' Custom Actions through internal widgets in Salesforce, allowing you to trigger Screen Flows or Autolaunched Flows directly from the widget. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction Enhance automation with CloudFiles' Custom Actions through internal widgets in Salesforce, allowing you to trigger Screen Flows or Autolaunched Flows directly from the widget. You can configure both Resource Actions (for individual resources) and List Actions (for multiple resources) to streamline your document management workflows. ![](https://media.help.cloudfiles.io/dms-widget-flow-actions-in-cloudfiles-sf/01.png) ![](https://media.help.cloudfiles.io/dms-widget-flow-actions-in-cloudfiles-sf/02.png) ## Prerequisites Ensure you have the following ready before setting up widget flow actions: - Access to the CloudFiles Document Management App in Salesforce. - Required flows (Screen Flow or Autolaunched Flow) configured in your Salesforce environment. - Familiarity with creating flow input variables. ## Setting Up Widget Flow Actions in CloudFiles Widget Follow these steps to configure List Actions in the CloudFiles widget - ### Step 1: Open Widget Configuration - Navigate to the CloudFiles Document Management App. - Open the "Widget Configuration" page. ### Step 2: Locate Resource / List Actions Section Scroll to the bottom of the page, where you'll find the Resource Actions & List Actions section. Refer to the image below for a visual understanding - ![](https://media.help.cloudfiles.io/dms-widget-flow-actions-in-cloudfiles-sf/03.png) ### Step 3: Specify Attributes for Actions For each action (Resource or List), specify the following attributes - - Label - The name of the action displayed on the widget. - Flow URL- The URL of the flow to be triggered. > **Note** — The flow URL format is /flow/CloudFiles_add_to_approval_pack - Flow Type- Select the type of flow from the dropdown (Screen Flow or Autolaunched Flow). ### Step 4: Create Flow Variables To pass selected resources (files/folders) and the current record ID to the flow, create the following two variables - ### For Resource Actions - resource: - Type - Variable - Data Type - Apex Defined - Apex Class - clds__Resource - Allow Multiple Values (Collection) - False - Available for Input - True - recordId: - Type - Variable - Data Type - Text - Allow Multiple Values (Collection) - False - Available for Input - True ### For List Actions - resources: - Type - Variable - Data Type - Apex Defined - Apex Class - clds__Resource - Allow Multiple Values (Collection) - True - Available for Input - True - recordId: - Type - Variable - Data Type - Text - Allow Multiple Values (Collection) - False - Available for Input - True > **Note** — You can choose any name for these variables; the suggested names are for guidance. > **Note** — You can also use a String variable, which can be static text or {!recordId} referencing the current record ID from which the action is invoked. ### Step 5: Using Flow URLs You can then use the flow URL in this format - For Resource Action ```text /flow/CloudFiles_add_to_approval_pack?resource={!resource}&recordId={!recordId} ``` For List Action ```text /flow/CloudFiles_add_to_approval_pack?resources={!resources}&recordId={!recordId} ``` When the user clicks the resource action or list action, your flow will be triggered with the variable values passed into the flow variables. Refer to the images shown below - ![](https://media.help.cloudfiles.io/dms-widget-flow-actions-in-cloudfiles-sf/04.png) ![](https://media.help.cloudfiles.io/dms-widget-flow-actions-in-cloudfiles-sf/05.png) --- # Sharing Add-On https://help.cloudfiles.io/salesforce/sharing-add-on # Sharing Add-On The Document Sharing Add-On allows you to securely share files and folders with people outside your Salesforce organization. > Kind: Guide · Updated: Jul 4, 2026 The Document Sharing Add-On allows you to securely share files and folders with people outside your Salesforce organization. It adds sharing capabilities to CloudFiles Document Management making it easy to create custom links, control who can access or download files, and track engagement such as views and downloads. ## Licensing & Configuration The Document Sharing Add-On is managed under Document Management licenses. > **License activation** — To enable license for Doc sharing with your Document Management, reach out to sales@cloudfiles.io for activation assistance. Once Doc-Sharing license is enabled, all users with a Document Management license can use Document Sharing Functionalities. The Configuration section includes settings for Branding and Link Defaults. These settings help ensure consistent sharing experience across your org. ![](https://media.help.cloudfiles.io/dms-sharing-add-on-sf/01.png) ## Datarooms With the Sharing Add-On, you can create Dataroom that let you share multiple files and folders, even from different cloud storage platforms through a single, unified link. They serve as centralized spaces for organizing, sharing, and managing content efficiently. With Datarooms, you can: - Organize files and folders into containers for easier navigation. - Add File Request blocks to collect documents from external users. - Customize access and permissions ![](https://media.help.cloudfiles.io/dms-sharing-add-on-sf/02.png) ## Create Links With the Sharing Add-On, you can Create Links for files, folders, and datarooms. A sharing link for a file or folder can be created directly from the CloudFiles widget on Salesforce records. Additionally, Link creation can be automated for files, folders, or datarooms using CloudFiles Flow actions. The generated links can then be shared through email or stored in Salesforce fields for future reference. ![](https://media.help.cloudfiles.io/dms-sharing-add-on-sf/03.png) ## Security The Security Control settings define how recipients access shared links and what restrictions apply to viewing or downloading files. These settings can be customized for each link. You can configure the following options: Require Email for Access, Enable Email Verification, Allow Specific Users (Email List), Block Specific Users (Email List), Restrict by Domain, Password Protect Links, Control Download Permissions. ![](https://media.help.cloudfiles.io/dms-sharing-add-on-sf/04.png) ## Manage Links Once a sharing link is created for a record, user can Manage Links directly through the Doc-Sharing widget (below) on the record page. The Doc-Sharing widget lists all links created for files, folders, and datarooms associated with that record. Users can quickly view key details such as link status, views, and analytics. They can also preview the shared file, update link settings, or enable/disable the link directly from the widget. ![](https://media.help.cloudfiles.io/dms-sharing-add-on-sf/05.png) ## Analytics The Document Sharing Add-On provides detailed insights into how recipients interact with shared content through Analytics and Engagement Tracking. Each shared link captures key engagement metrics, which are displayed within the Doc-Sharing widget and summarized in an analytics dashboard. Users can view: Total and unique views, Download count, Page-by-page engagement (time spent per page) ![](https://media.help.cloudfiles.io/dms-sharing-add-on-sf/06.png) --- # Configuration (Sharing Add-On) https://help.cloudfiles.io/salesforce/bO-m-configuration # Configuration The Document Sharing Add-On is managed through Document Management licenses, and once enabled, admins can configure settings under the Document Sharing section in the CloudFiles app to control how sharing works and how shared links appear to end users. > Kind: Guide · Updated: Jul 4, 2026 The Document Sharing Add-On is managed through Document Management licenses. Once the add-on is enabled for your org, admins can configure settings under the Document Sharing section in the CloudFiles app to control how sharing works and how shared links appear to end users. ## User Management The User Management section allows admins to view and manage CloudFiles licenses assigned to Salesforce users. This page provides an overview of all users who have access to the Document Sharing Add-On and their current license status. From this view, admins can: - See all users assigned a DocMan license along with their name and email. - Check license status (Active or Inactive) for each user. - View CloudFiles Roles, such as Admin or User. - Add Licenses to additional users using the Add Licenses button. This section helps administrators ensure that the right users have access to CloudFiles Doc-Sharing features and that licenses are assigned efficiently across the organization. ![](https://media.help.cloudfiles.io/dms-configuration-2-sf/01.png) ## Branding Setting Branding Setting Branding settings allow you to customize the appearance of your shared links and document viewer. You can add your company website to fetch its favicon, upload your company logo to replace the CloudFiles default branding, and configure a custom domain (CNAME) for a fully white-labeled sharing experience. These options ensure that all shared links and file viewers reflect your organization’s identity. ## Link Defaults Link Defaults Link Defaults let you define how newly created sharing links should behave by default. Admins can set defaults for link status, download permissions, expiry rules, notification preferences, security requirements, and Auto Sync behavior. These settings ensure consistent link behavior across the organization while still allowing users to adjust options on individual links when needed. ## Compliance Compliance Compliance settings allow you to define the privacy and consent requirements shown to end users before they access shared documents. These settings help organizations meet legal or regulatory needs by displaying consent notices, privacy policy links, and IP tracking within the viewer. Once configured, these compliance rules apply automatically to all CloudFiles shared links. ## Viewer Customization Viewer Customization Viewer Customization settings let you control how users sign in and how the CloudFiles viewer appears. You can enable preferred login methods, such as Email, Google, or Microsoft and set the default viewer theme to Light or Dark. These options help deliver a consistent and branded viewing experience for your users. --- # Branding Setting https://help.cloudfiles.io/salesforce/branding-setting # Branding Setting Through Branding setting, CloudFiles allows you to completely white-label the document viewer with your company logo and custom domain for shared CloudFiles document links. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction Through Branding setting, CloudFiles allows you to completely white-label the document viewer with your company logo and custom domain for shared CloudFiles document links. This setting is within the Document Sharing tab in Document Management settings. > White-labeling the CloudFiles Document Viewer is not available in the trial version. To use Branding features such as custom logo, website favicon, and custom domain (CNAME), you must purchase an Enterprise license. You can refer to the article on Purchasing and assigning licenses for more details. The Branding setting consists of the following fields, which are discussed in detail in the following sections of the article. - Website - Add your company website here, this is used to fetch the favicon displayed in the links. - Logo - Add your company logo in this field to display your logo in the shared links instead of the CloudFiles logo. - Custom Domain - Add CNAME mapping so that we can enable custom domain on your account. The image below shows what this setting looks like in the CloudFiles App. ![](https://media.help.cloudfiles.io/dms-branding-setting-sf/01.png) ## Document Sharing When enabled, the Document Sharing tab within the Document Management settings allows users to share documents through links from the Share button in the internal widget. The GIF below explains how document sharing works. ![](https://media.help.cloudfiles.io/dms-branding-setting-sf/02.gif) ## Branding The branding setting within Document Sharing allows CloudFiles users to customize branding on the shared links. It has the following properties which can be customized. > **Note** — The shared links will have CloudFiles branding by default ### Website This property allows CloudFiles users to set a favicon of their website on shared links. The image below shows how favicon will look on shared links. > **Note** — The shared links will have CloudFiles favicon by default ![](https://media.help.cloudfiles.io/dms-branding-setting-sf/03.png) ### Logo This property enables users to put a logo on the shared links in place of the default CloudFiles logo. The image below shows how the logo at the top left will look on shared links. ![](https://media.help.cloudfiles.io/dms-branding-setting-sf/04.png) ### Custom Domain In order to add your custom domain, you first need to map CloudFiles with your DNS provider. This process is called CNAME mapping and is usually handled by IT teams in large organizations. Although the steps may change based on the DNS provider, here are the main steps to be followed. If you are not the IT admin, it is best to get them involved so they can easily understand and implement these - Go to your DNS provider where yourdomain.com DNS is purchased from. - Open the DNS settings - Create a new record with type CNAME - For that record, host = the subdomain name you want. This can be anything that you like, for example - docs, files etc. - For value, add cname.cloudfiles.io - For TTL select 5 minutes. Your new sub-domain will become accessible after this much time. Once the CNAME mapping is done, you can add the custom domain through the setting provided in this section. Follow the steps below in order to do the same. - Click on the Configure button to initiate the process, this will result in prompting a input to add your custom domain, click Continue once you have added the domain. Refer to the image given below for further explanation. ![](https://media.help.cloudfiles.io/dms-branding-setting-sf/05.jpg) - Once you have clicked "Continue", the system will attempt to configure your domain. If the domain is successfully configured you will see "Active" state. You may get "Missing Configuration" state otherwise, as shown in the image below. ![](https://media.help.cloudfiles.io/dms-branding-setting-sf/06.jpg) > Once the domain has been successfully configured, your links will update. Your old links will continue to work but won't redirect to the new links. CloudFiles keeps the link slug same but replaces the prefix. E.g. https://cloudfiles/slug will become https://docs.yourdomain.come/slug. --- # Link Defaults (Guide · Salesforce) https://help.cloudfiles.io/salesforce/link-defaults # Link Defaults Link Defaults let administrators set the default behavior (Status, Download, Expiry, Notifications, Require Email, and Auto Sync) for newly created CloudFiles sharing links. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction Link Defaults allow administrators to define the default behavior for newly created sharing links. These settings apply only to links generated after the defaults are configured, ensuring consistency across all CloudFiles links and reducing the need for repeated manual adjustments. This section includes default options for Status, Download, Expiry, Notifications, Require Email, and Auto Sync. Whenever a new sharing link is created, either manually or through a Flow action, the link will automatically inherit these default settings. > **Note** — Updating Link Defaults does not modify or affect any existing links. User can override these settings through Cloudfiles widget or via flow actions. The image below shows what this configuration looks like in the CloudFiles App. ![](https://media.help.cloudfiles.io/dms-link-defaults-sf/01.png) ## Status Controls whether newly created links should start as Online (active) or Offline by default. - When set to Online, newly created links become immediately accessible to recipients. - When set to Offline, newly created links will not be accessible until activated. ## Download Controls whether recipients are allowed to download shared files by default. - When enabled, newly generated links will allow recipients to download the file. - When disabled, newly generated links will restrict recipients to viewing only. Downloading will not be allowed unless changed later. ## Expiry Defines when newly created links should automatically expire by default. The link will deactivate when the first configured limit is reached. - Number of Views – The link expires after it reaches the specified number of views. - Days – The link expires after a set number of days from creation. Whichever limit is reached first will disable the link. This can be overridden on each individual link after creation. ## Notification Controls the default frequency of email notifications sent when a shared link is viewed. - Notification on first view – Sends an email only when the link is viewed for the first time. - Notification on each view – Sends an email for every view event. - No notification – Disables all view notifications. ## Require Email Determines whether recipients must enter a valid email address before accessing the shared link. - When enabled, viewers must provide an email address to proceed. This helps identify who accessed the link and improves tracking through analytics. - When disabled, recipients can access the link without providing an email. ## Auto Sync When files are shared externally using CloudFiles generated links, CloudFiles needs to cache the file temporarily before showing it to the end user. This is important for performance reasons. This caching is done on CloudFiles owned storages. In default case, when this toggle is off, files are cached in CloudFiles owned storage on a temporary basis to decrease loading time and to ensure faster file availability. This setting, when toggled on, allows users to fetch files directly from the source such as SharePoint, Google or other integrations, eliminating the need of caching files to CloudFiles owned storage on temporary basis. > Enabling this setting would negatively impact the loading time of the files. > The setting is disabled, by default. --- # Compliance https://help.cloudfiles.io/salesforce/compliance # Compliance The Compliance settings allow administrators to define the privacy and consent requirements that end users must acknowledge before accessing shared documents. > Kind: Guide · Updated: Jul 4, 2026 The Compliance settings allow administrators to define the privacy and consent requirements that end users must acknowledge before accessing shared documents. These settings help organizations meet legal, regulatory, or internal compliance needs by displaying consent notices, privacy policy links, and optionally collecting IP addresses from viewers. Once configured, Compliance applies to all CloudFiles shared links. Whenever an end user accesses a CloudFiles link, they will see the relevant consent prompts or privacy notices based on the settings enabled. ![](https://media.help.cloudfiles.io/dms-compliance-sf/01.png) ## End User Consent Users may be prompted to accept a consent message before entering personal information, such as their email address while accessing a shared file. ### Enable End User Data Collection Consent Toggle this option ON to require viewers to explicitly agree before entering any personal details. ![](https://media.help.cloudfiles.io/dms-compliance-sf/02.png) When enabled, users will see a popup notice asking for their consent before proceeding. ### Consent Statement This section allows admins to define the message that will be shown inside the consent popup. You can customize the consent text using the rich text editor. Example: “By continuing, you agree to provide your information for accessing this document.” ![](https://media.help.cloudfiles.io/dms-compliance-sf/03.png) The message appears inside the privacy notice that the user must accept before viewing the file. Example: ![](https://media.help.cloudfiles.io/dms-compliance-sf/04.png) ## Privacy Policy You can add your organization’s Privacy Policy URL to display inside the CloudFiles viewer. This ensures that end users can easily access your privacy guidelines when viewing shared documents. ![](https://media.help.cloudfiles.io/dms-compliance-sf/05.png) When link is accessed, viewers will see a small “Privacy Policy” link inside the file viewer interface, ensuring transparency and compliance with privacy requirements. ![](https://media.help.cloudfiles.io/dms-compliance-sf/06.png) ## Track IP Enable this option if you want to collect the IP address of users who open your shared links. ![](https://media.help.cloudfiles.io/dms-compliance-sf/07.png) --- # Viewer Customization https://help.cloudfiles.io/salesforce/viewer-customization # Viewer Customization The Viewer Customization settings allow administrators to control how end-users log in to access shared documents and how the CloudFiles viewer is visually displayed. > Kind: Guide · Updated: Jul 4, 2026 The Viewer Customization settings allow administrators to control how end-users log in to access shared documents and how the CloudFiles viewer is visually displayed. These settings help tailor the viewing experience to your organization’s preferences while maintaining secure access to files. Viewer Customization applies to all CloudFiles links once configured. ## Viewer Login Options Viewer login options determine which authentication methods are shown to recipients when accessing a document through a CloudFiles link. You can enable or disable any combination of supported login providers. Available Login Methods: ![](https://media.help.cloudfiles.io/dms-viewer-customization-sf/01.png) - Email — Users can enter their email address to access the file. - Google — Users can authenticate via their Google account. - Microsoft / Outlook — Users can log in using their Outlook or Microsoft account. When multiple login options are enabled, users will see all available methods on the login prompt. ![](https://media.help.cloudfiles.io/dms-viewer-customization-sf/02.png) ## Viewer Default Theme This setting defines the default appearance of the CloudFiles viewer. You can choose between: - Light Theme — A bright, standard interface. ![](https://media.help.cloudfiles.io/dms-viewer-customization-sf/03.png) - Dark Theme — A darker interface suitable for low-light environments. ![](https://media.help.cloudfiles.io/dms-viewer-customization-sf/04.png) The selected theme becomes the default look for all users viewing files through CloudFiles. --- # Dataroom (Guide) https://help.cloudfiles.io/salesforce/zqyW-dataroom # Dataroom A Dataroom in CloudFiles is a collection of files and folders shared through a single link, created and managed using Flow actions. > Kind: Guide · Updated: Jul 4, 2026 A Dataroom in CloudFiles is a collection of files and folders that can be shared through a single link. It can include content from multiple storage locations, even across different cloud platforms, allowing users to share organized document sets efficiently.Datarooms can be created and managed using Flow actions, making it easy to organize, automate, and maintain document collections without manual effort. ## Create Data Room You can create a Dataroom using the Create Dataroom flow action. You could set its name and description. Once created, the Dataroom acts as a central container for all files, folders, and file requests, all of which can later be shared through a CloudFiles link. ![](https://media.help.cloudfiles.io/dms-dataroom-sf/01.png) ## Create File Request A File Request enables external users to upload files to a designated external storage location configured from the Dataroom. It helps streamline the process of collecting documents such as contracts, forms, or identity proofs from clients or partners. In Salesforce, the Create File Request flow action is used to configure and manage these uploads. You can define the name, description, and the destination where uploaded files shall be directed and stored. Once the sharing link is generated and shared, any files uploaded by end users are automatically saved to the specified location. ![](https://media.help.cloudfiles.io/dms-dataroom-sf/02.png) ## Add Files, Folders, or File Requests to Dataroom Once a Dataroom is created, you can add files, folders, or file requests. This is done using the Add to Dataroom Flow action. The action supports two types of collections: - Resources: Files or folders to be included in the Dataroom. - File Requests: Items of type “File Request” used to collect external uploads. Once the Files, Folders and File Requests were added, a Dataroom will look like this when it is accessed through a link: ![](https://media.help.cloudfiles.io/dms-dataroom-sf/03.png) After setting up a Dataroom, refer to the Create Links section to generate sharable link. --- # Create Links (Guide) https://help.cloudfiles.io/salesforce/create-links # Create Links The CloudFiles Document Sharing Add-On allows users to create sharing links for files, folders, or datarooms directly from Salesforce, either manually from the CloudFiles widget or automatically using Salesforce Flow actions. > Kind: Guide · Updated: Jul 4, 2026 The CloudFiles Document Sharing Add-On allows users to create sharing links for files, folders, or datarooms directly from Salesforce. These links can be generated manually from the CloudFiles widget or automatically using Salesforce Flow actions. This article explains how to create sharing links manually and automatically. ## Create Link - Manual Manual link creation is done from the CloudFiles widget on a Salesforce record. Before creating links, ensure the widget is added to the desired record pages such as Contact, Opportunity, or Case. Once added, the CloudFiles section appears in the record view, allowing users to connect folder or files to the record. ![](https://media.help.cloudfiles.io/dms-create-links-sf/01.png) Connect a file or folder to the widget. ![](https://media.help.cloudfiles.io/dms-create-links-sf/02.png) ### Steps After the widget is available with connected resources, users can create sharing links directly from Salesforce records. - Open a record and locate the file/Folder under CloudFiles widget - Hover over the file or folder to be shared. - Click ⋮ (More Options) and select Share. ![](https://media.help.cloudfiles.io/dms-create-links-sf/03.png) This opens the Link Settings dialog, where you can configure the sharing options. ![](https://media.help.cloudfiles.io/dms-create-links-sf/04.png) Link Settings: The Link Settings dialog allows you to control access, expiry, and security for the shared link. a. Status Use these options to enable sharing and manage basic access behavior: - Online: Activates or deactivates the sharing link. - Allow File Download: Lets recipients download the file or restricts them to view-only mode. - Copy Link: Copies the generated sharing URL for distribution outside Salesforce. ![](https://media.help.cloudfiles.io/dms-create-links-sf/05.png) b. Expiry Set conditions that automatically disable the link after a defined limit: - On (Date/Time): Expires the link on a specific date and time. - After (Views): Expires the link after a specified number of views. ![](https://media.help.cloudfiles.io/dms-create-links-sf/06.png) > **Note** — The link will expire when either of the two limits (date/time or view count) is reached, whichever comes first. ## Create Link - Automation You can create a flow to create the link automatically (for a file/folder/dataroom) when specific conditions are met for example, when a new record is created or when an Opportunity moves to a particular stage. ### Steps The Create Link flow action generates a shareable link for a file, folder, or dataroom. This flow action accepts the following inputs: - Drive ID - Drive Id of the external storage - Library - sharepoint, google, etc - Resource ID - File/Folder Id or dataroom Id - Resource Type - file, folder, or dataroom - Salesforce Record ID The Create Link action returns the Link ID and URL. You can use the Link ID to update security settings through the CloudFiles flow action, and the link URL can be saved on the record or sent via email through further automation. Refer to Security Control for configuring access controls manually or through automation. --- # Security Control https://help.cloudfiles.io/salesforce/security-control # Security Control The Security section in the Link Settings dialog allows users to restrict access and protect shared files using passwords, email-based validation, and domain-level controls. > Kind: Guide · Updated: Jul 4, 2026 The Security section in the Link Settings dialog allows users to restrict access and protect shared files using passwords, email-based validation, and domain-level controls. These settings ensure that only authorized recipients can view or download the content. ## Configure - Manual The Security settings control how recipients access a shared link and who is allowed to view it. These options help ensure that files are shared only with authorized users. After the widget is available with connected resources, users can create sharing links directly from Salesforce records. - Open a record and locate the file/Folder under CloudFiles widget - Hover over the file or folder to be shared. - Click ⋮ (More Options) and select Share. ![](https://media.help.cloudfiles.io/dms-security-control-sf/01.png) ### Available Options ![](https://media.help.cloudfiles.io/dms-security-control-sf/02.png) - Password Protected: Enable password protection so users must enter a password before opening the shared link. - Requires Email for Viewing: Allow access only to users who enter a valid email address. - Enforce Email Verification: Verify the user’s email with verification code before granting access to the shared file or folder. - Allow List: Use the Allow List to grant access only to specific users or domains. Only users whose emails or domains are added here will be able to open or download the shared file. If no allow list is set, the link remains accessible to anyone meeting other configured conditions. Emails: john@gmail.com, myname@domain.com Domains: cloudfiles.io, mysite.com - Blocked List: Use the Blocked List to deny access to certain users or domains, even if they receive the shared link. Emails: test@domain.com Domains: test.com ## Configure - Automatic Automatic configuration allows you to update link settings without manual intervention. This is useful when you want link behavior, such as security rules, access permissions, or download settings, to adjust automatically based on your business processes or record updates. The Update Link Settings action modifies the configuration of existing CloudFiles links. ### Available Options Automatic configuration can update a link in several ways. It can disable or reactivate the link, allow or restrict downloads, limit access to specific users or domains, protect the link with a password, or enforce email verification. The flow action accepts the following inputs to configure these settings for a link: - Link Id - CloudFiles Link Id that you created using Create Link action - Allowed Emails - List of Email Ids you wish to grant access to the link. - Allowed Domains - List of Domains you wish to grant access to the link. - Disable - To disable the CloudFiles Link. - Allow Downloading - To allow downloading. - Password - Text type input to make the link password protected. - Enable Email Verification - To enforce email verification. Once links has been created and configured related to a record, you can Manage Links using Doc-Sharing Widget. --- # Manage Links https://help.cloudfiles.io/salesforce/manage-links # Manage Links Once sharing links are created for a record, they can be viewed and managed through the Doc-Sharing widget on the record page. > Kind: Guide · Updated: Jul 4, 2026 Once sharing links are created for a record, they can be viewed and managed through the Doc-Sharing widget on the record page. This widget lists all links created manually or through automation flows and allows users to view link details, update link settings, and manage access security. ## Adding a Widget to a Record To manage shared links from the record page, you must add the CloudFiles widget to the Lightning record layout. Steps: - Open the record → click Setup → Edit Page to open the Lightning App Builder. - Search for CloudFiles and drag the component onto the page. ![](https://media.help.cloudfiles.io/dms-manage-links-sf/01.png) - Set Widget Type to shared-links, then Save and Activate the layout. ![](https://media.help.cloudfiles.io/dms-manage-links-sf/02.png) This adds the Shared Links widget to the record, allowing users to manage file, folder, and dataroom links on that record. ## Widget View After adding the widget, the Shared Links table becomes visible on the record page. This view provides a quick overview of all links associated with the record. The widget displays: Name, Created By, Created On, Views, Status, Analytics, Actions Menu ![](https://media.help.cloudfiles.io/dms-manage-links-sf/03.png) This helps users understand link usage and quickly perform actions without leaving the record page. ## Link Actions From the Shared Links widget, each link has an Actions menu (▾). Clicking this menu reveals options such as: Copy Link, Edit Link Settings, Export Analytics, Preview, Download ![](https://media.help.cloudfiles.io/dms-manage-links-sf/04.png) ## Edit Link Settings When selecting Edit Link Settings, a configuration dialog appears. This dialog includes: ### 1 - Status ![](https://media.help.cloudfiles.io/dms-manage-links-sf/05.png) - Online – Toggle to activate or deactivate the link. - Sharing URL – The generated link with a Copy Link button. - Allow File Download – Enable or disable downloading for recipients. ### 2 - Expiry Options for setting when the link should expire. Whichever limit is reached first will deactivate the link. - Expiry by Date/Time - Expiry by Number of Views ![](https://media.help.cloudfiles.io/dms-manage-links-sf/06.png) ### 3 - Security Options to protect the link: Password protection, Require email for viewing, Enforce email verification, Allow/Block lists (emails or domains) ![](https://media.help.cloudfiles.io/dms-manage-links-sf/07.png) Users can adjust link availability, expiry, and security settings at any time, directly from the record page. --- # Analytics and Engagement Tracking https://help.cloudfiles.io/salesforce/analytics-and-engagement-tracking # Analytics and Engagement Tracking The Analytics and Engagement Tracking feature in CloudFiles provides detailed insights into how recipients interact with shared files and folders. > Kind: Guide · Updated: Jul 4, 2026 The Analytics and Engagement Tracking feature in CloudFiles provides detailed insights into how recipients interact with shared files and folders. These analytics help users track engagement, downloads, and viewing behavior directly within Salesforce. CloudFiles captures analytics for every shared link, and users can view them from the record page. ## Accessing Analytics You can access analytics for any shared file or folder in two ways, depending on where the link is viewed. ### 1. From the Doc-Man Widget - Open the relevant record and navigate to the folder/file in the Doc-Man Widget. - Click the dropdown arrow next to the item. - Select View Analytics. ![](https://media.help.cloudfiles.io/dms-analytics-and-engagement-tracking-sf/01.png) ### 2. From the Doc-Sharing Widget Refer to Manage Links to add Doc-Sharing Widget into the record page. - In the Shared Links section on the record page, locate the shared link. - Click the Analytics icon (📈). ![](https://media.help.cloudfiles.io/dms-analytics-and-engagement-tracking-sf/02.png) Both paths will open the Analytics Window which displays detailed engagement metrics for the selected file. ![](https://media.help.cloudfiles.io/dms-analytics-and-engagement-tracking-sf/03.png) ## Key Metrics The Analytics window displays several important engagement metrics: ![](https://media.help.cloudfiles.io/dms-analytics-and-engagement-tracking-sf/04.png) - Total Views: The total number of times the shared link has been accessed. - Unique Views: The number of distinct users who have viewed the file. - Downloads: Total number of file downloads. - Total Time: Cumulative time viewers spent interacting with the file. All metrics update automatically whenever a recipient views or downloads the file. ## Engagement Details The File Engagement section provides deeper visibility into user-level interaction data, including: Location of the viewer (e.g., region or state), Email used to access the file, Time Spent on the file, Number of Sessions, Last Viewed On date. ![](https://media.help.cloudfiles.io/dms-analytics-and-engagement-tracking-sf/05.png) ### Individual Viewer Insights Clicking on any individual View entry opens a user-specific engagement summary, displaying: Total time spent by that user, Total sessions, Downloads by that user, A session-wise breakdown of time spent, Last viewed date. ![](https://media.help.cloudfiles.io/dms-analytics-and-engagement-tracking-sf/06.png) This helps identify how a specific user interacted with the document. ## Editing Link Settings From the same analytics screen, users can also click Edit Link Settings to modify: Link status, Expiry settings, Security preferences, Download permissions. ## Analytics Export Users can click Export Analytics in the analytics window to download the engagement data for reporting or audit purposes. --- # Experience Cloud https://help.cloudfiles.io/salesforce/experience-cloud # Experience Cloud CloudFiles extends Salesforce Experience Cloud by allowing files and folders from cloud storage to be shared securely with external users such as customers or partners. > Kind: Guide · Updated: Jul 4, 2026 Salesforce Experience Cloud is used to create portals where external users such as customers or partners can access Salesforce data. CloudFiles extends Experience Cloud by allowing files and folders (from cloud storage) to be shared securely with these external users. It provides a way to control which documents are visible and what actions users can perform on them. This makes Experience Cloud an effective solution for external collaboration and document exchange. ## Setup Experience Cloud sharing is enabled in the Experience Cloud section under Document Management in the CloudFiles app. Once enabled, CloudFiles widgets can be used in Experience Cloud sites to securely share files and folders with external users. These widgets surface content from Salesforce records or content libraries and make it available based on the selected configuration and user permissions. The CloudFiles widget can be added to any Experience Cloud page, including record pages, home pages, and custom community pages. The widget acts as the primary interface through which Experience Cloud users interact with shared content. ![](https://media.help.cloudfiles.io/dms-experience-cloud-sf/01.png) ## Permissions Access to Experience Cloud functionality in CloudFiles is controlled by the CloudFiles External Users permission set. This permission set defines which Experience Cloud users can access CloudFiles features and what actions they can perform on files and folders. You can adjust these permissions to match your business requirements and control widget visibility, access levels, and available operations. Experience Cloud users don't need a Microsoft or SharePoint identity of their own to view shared files. CloudFiles connects to the external storage using its own single, account-level credential, the same one used for automated actions, and brokers access to the specific files and folders each user's permissions allow. ![](https://media.help.cloudfiles.io/dms-experience-cloud-sf/02.png) ## Sharing Options CloudFiles provides multiple ways to share files and folders with Experience Cloud users. You can share content automatically through a default configuration, manually through the CloudFiles record widget or Content Library, or trigger sharing through Salesforce Flow. Each method controls when files are shared and how access is granted. Experience Cloud users can view and interact with files based on the permissions assigned to them. ![](https://media.help.cloudfiles.io/dms-experience-cloud-sf/03.png) --- # Setup https://help.cloudfiles.io/salesforce/setup # Setup The Setup section explains how to enable and configure Experience Cloud sharing in the CloudFiles app. > Kind: Guide · Updated: Jul 4, 2026 The Setup section explains how to enable and configure Experience Cloud sharing in the CloudFiles app. It covers how sharing works, how to monitor usage, and how to add the CloudFiles widget to Experience Cloud pages. ## Enable Sharing To allow Experience Cloud users to access CloudFiles content on an Experience Cloud site, you must first enable Experience Cloud sharing in the CloudFiles app. This activates the Experience Cloud integration and makes shared files and folders available to external users based on their site access, permissions, and record visibility. Once enabled, you can share files using default sharing, the record widget, content libraries, or automation. - Go to the CloudFiles app - Select Document Management - Open Experience Cloud - Turn on Enable sharing with Experience Cloud Users. ![](https://media.help.cloudfiles.io/dms-setup-sf/01.png) ## Usage Monitoring The Experience Cloud setup page includes usage monitoring to help administrators track external user activity and adoption over time. Monitor Active Users: The Total number of active users section shows the number of Experience Cloud users who accessed CloudFiles during the selected time period. The chart provides a visual view of activity trends and helps monitor usage patterns. You can adjust the monitoring view using the following filters: - Interval to control how activity is grouped (for example, Day) - Date range to change the reporting period (for example, Last 30 days) ![](https://media.help.cloudfiles.io/dms-setup-sf/02.png) ## Add Widget to Experience Cloud The CloudFiles widget is a Lightning web component that displays files and folders within an Experience Cloud site. The content shown is determined by the page contex specifically, the Record Id and Object API Name provided in the widget configuration. For example, on a record page, the widget displays files and folders related to the specified Salesforce record. On a home or custom page, the widget displays content based on the configured user or object context. The available actions depend on the selected widget configuration and the permissions assigned to the Experience Cloud user. For detailed steps on adding the widget to different pages, refer toAdd Widget to Experience Cloud. ## Widget Actions In the CloudFiles Community widget, external users who are assigned the CloudFiles External User permission set in Salesforce can perform actions such as uploading and downloading files, creating folders, deleting items (if allowed), generating shareable links, and viewing analytics. ![](https://media.help.cloudfiles.io/dms-setup-sf/03.png) The operations available to users depend on the CloudFiles permission set assigned to them and the widget configuration. Refer to Permissions to understand how this permission set works and how to customize it. ## Widget Configuration Widget Configuration controls how the CloudFiles Experience Cloud widget behaves and what external users can see or do. You can manage visible columns, available actions (such as upload, download, or create folder), and optional restrictions such as supported file types or upload limits. These settings work together with the CloudFiles External User permission set to define the overall widget experience. Refer to Experience Cloud Widget Guide to setup and configure the widget. ![](https://media.help.cloudfiles.io/dms-setup-sf/04.png) --- # Add Widget to Experience Cloud https://help.cloudfiles.io/salesforce/add-widget-to-experience-cloud # Add Widget to Experience Cloud The CloudFiles widget allows Experience Cloud users to view and work with files and folders based on the record or user context passed to the widget. > Kind: Guide · Updated: Jul 4, 2026 The CloudFiles widget allows Experience Cloud users to view and work with files and folders based on the record or user context passed to the widget. The content displayed is determined by the Record Id and Object Name provided in the widget configuration—for example, showing record-related files when a Salesforce record ID is passed, or shared library content when a different context is configured. ## Record Page On Experience Cloud record pages, you can add the CloudFiles Community widget to display the files and folders linked to the current Salesforce record. After adding the widget in Experience Builder, configure the component properties as follows: - Record Id: {!recordId} - Object Name: API name of the object (for example, Lead or Case) ![](https://media.help.cloudfiles.io/dms-add-widget-to-experience-cloud-sf/01.png) This ensures the widget loads the correct record-related content for Experience Cloud users. ![](https://media.help.cloudfiles.io/dms-add-widget-to-experience-cloud-sf/02.png) ## Home page or Custom Page You may want to show CloudFiles content on an Experience Cloud home page or custom page, where the widget is not tied to a specific Salesforce record. This is useful when external users should see a shared folder or library content as soon as they log in (for example, customer documents or partner resources). After adding the CloudFiles Community widget in Experience Builder, configure the component properties like this: - Record Id – Set this to the logged-in user context. For example: {!CurrentUser.id} (or {!CurrentUser.accountId} if you want to load content based on the user’s Account). You can find the list of all expressions available on a Experience site page here If your Experience Cloud site is built using the Lightning Web Runtime (LWR) template, use: {!User.Record.AccountId} You can find the list of all expressions available on a Experience site page here - Object Name – Enter the API name of the object used for the context. Example: User (or Account, depending on the Record Id you are passing). This setup ensures the widget loads the correct folders and files for the logged-in Experience Cloud user. The below widget is configured using {!CurrentUser.Id}, it displays only the files and folders shared to the logged-in user’s Salesforce User record. ![](https://media.help.cloudfiles.io/dms-add-widget-to-experience-cloud-sf/03.png) After the resources are shared, users can view them on the Home page as shown below: ![](https://media.help.cloudfiles.io/dms-add-widget-to-experience-cloud-sf/04.png) ## Add the Widget Using HTML If you want to use CloudFiles community widget in the HTML code of your Experience site page, you can use the following code snippet. Attributes - - record-id- Id of the Salesforce record which has the content attached - object-api-name - API name of the Salesforce record which has the content attached. For example - Account - component-width - Optional. Widget of the widget, in percentage of the total page width. Default value is 100% of the page width - component-height- Optional. Height of the widget. Default value is 328px - widget-config-id - Optional. Id of the widget configuration to apply to this widget --- # Permissions https://help.cloudfiles.io/salesforce/permissions # Permissions Experience Cloud users can access CloudFiles content only if the CloudFiles External Users permission set is assigned to them in Salesforce. > Kind: Guide · Updated: Jul 4, 2026 Experience Cloud users can access CloudFiles content only if the CloudFiles External Users permission set is assigned to them in Salesforce. This permission set determines what external users can see and what actions they can perform in the CloudFiles Community widget—such as viewing shared files and folders, downloading content, or uploading files (depending on what you allow). ## CloudFiles External Users The CloudFiles External Users permission set is designed specifically for external users in Experience Cloud. It enables CloudFiles access in the Experience Cloud site and controls the actions available in the widget. Assign the Permission Set to Users: - Go to Setup → Permission Sets - Select CloudFiles External Users - Open Manage Assignments and click Add Assignment - Select the Experience Cloud users who need access, then click Save to complete the assignment. Once assigned, users can access CloudFiles folders and files that have been shared with them, based on sharing configuration and record visibility. ## Customize Permission Set If you need to control what Experience Cloud users can do in the CloudFiles widget, clone the CloudFiles External Users permission set and customize the cloned version by modifying its Custom Permissions. These permissions determine which operations—such as viewing, uploading, downloading, sharing, or deleting files are available to external users in the CloudFiles widget. Custom Permissions available in the permission set include: - cldfs.Allow Downloading - cldfs.Upload Files - cldfs.Create Folder - cldfs.Delete files & folders - cldfs.Share files & folder - cldfs.View Analytics - cldfs.View Sharing Settings Use these permissions to enable or restrict specific actions based on your business requirements. ![](https://media.help.cloudfiles.io/dms-permissions-sf/01.png) --- # Sharing Options https://help.cloudfiles.io/salesforce/sharing-options # Sharing Options CloudFiles offers multiple ways to share files and folders with Experience Cloud users, based on your business needs. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles offers multiple ways to share files and folders with Experience Cloud users. Each sharing option controls when and how external users can access content, based on your business needs. CloudFiles supports four sharing methods for Experience Cloud users: Default Sharing, Content Library Sharing, Sharing via Record, and Sharing via Automation. ## Default Sharing Default Sharing automatically shares record-related files and folders with Experience Cloud users when they are attached to a Salesforce record. - Go to the CloudFiles app - Select Document Management - Open Experience Cloud - Enable Automatically share files with experience cloud users when attached to a record After this setting is enabled, any files or folders attached to a Salesforce record are automatically shared with Experience Cloud users who have access to that record in the site. ![](https://media.help.cloudfiles.io/dms-sharing-options-sf/01.png) ## Sharing via Content Library CloudFiles allows files and folders to be shared with Experience Cloud users directly from the Content Library. This option is useful when content needs to be shared independently of a Salesforce record, such as sharing a library folder with a partner group or site audience. Once shared, Experience Cloud users can access the content from the Experience Cloud site based on their permissions. - In the Content Library, open the folder that contains the file or subfolder you want to share. - Click the dropdown menu for the file or folder you want to share. - Select Share. - In Share with groups, search for and select the community group or user. - Click Done to finish sharing. ![](https://media.help.cloudfiles.io/dms-sharing-options-sf/02.png) ![](https://media.help.cloudfiles.io/dms-sharing-options-sf/03.png) Once shared, the file is available to the selected Experience Cloud user or user group. Any CloudFiles Community widget configured to display content for the current logged-in user (Eg: Object - User, Record Id - {!CurrentUser.id}), will automatically show the files and folders shared with that user. ![](https://media.help.cloudfiles.io/dms-sharing-options-sf/04.png) ## Sharing via Record CloudFiles allows internal users to manually share files or folders with Experience Cloud users directly from a Salesforce record. When a file or folder is shared using the Share with Community option from the CloudFiles record widget, it becomes available to external users through the CloudFiles Community widget on the corresponding Experience Cloud page. ![](https://media.help.cloudfiles.io/dms-sharing-options-sf/05.png) To share content, open the required Salesforce record and locate the file or folder in the CloudFiles widget. To share an entire folder, click the gear icon and select Share with Community. ![](https://media.help.cloudfiles.io/dms-sharing-options-sf/06.png) You can also share an individual file or subfolder by clicking the dropdown menu next to the item and selecting Share with Community. Once shared, Experience Cloud users who have access to the related Salesforce record and the required permissions can view the shared files or folders in the Experience Cloud site through the CloudFiles Community widget. ![](https://media.help.cloudfiles.io/dms-sharing-options-sf/07.png) ## Sharing via Automation Uses the Share With Community User Flow action to automate sharing of files and folders based on defined business logic. For advanced scenarios, the Share With Community User apex client method can be used to enable programmatic sharing with Experience Cloud users. --- # Document Management Tutorials https://help.cloudfiles.io/salesforce/document-management-tutorials # Document Management Tutorials Welcome to the Document Management tutorials category. This section contains a collection of step-by-step guides to help you get the most out of CloudFiles' document management features. > Kind: Tutorial · Updated: Jul 4, 2026 Welcome to the Document Management tutorials category. This section contains a collection of step-by-step guides to help you get the most out of CloudFiles' document management features. Browse through the list below to get started - - Automated nested folders creation based on object relationships - In this tutorial, we'll automate nested folders creation in any external storage system based on object relationships using CloudFiles-Salesforce Integration. As an example, we'll demonstrate how to generate nested 'Opportunities' folders within associated 'Account' folder when new opportunities are created. - Automatically moving files from Salesforce storage to external storage -In this tutorial, we will demonstrate how to automatically move files uploaded to Salesforce storage to an external storage system while deleting the originally uploaded files using Salesforce-CloudFiles integration. We will utilize CloudFiles flow actions to facilitate the file movement process. - Copy Email Attachments to Case Folders in external storage if Email-to-Case is activated - In this tutorial, we'll guide you on copying Case email attachments to corresponding Case record's connected folder in any external storage when you have Email-to-Case enabled in your Org using CloudFiles-Salesforce Integration. - Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects- In this tutorial, we'll guide you on creating automated folders and sub-folders in any external storage directly from any Salesforce Object using CloudFiles-Salesforce Integration. We will use CloudFiles flow actions to create these automated folders. - Delete attached folder when Account record is deleted - In this article, we explain how to automatically delete a related folder from your external storage system (such as Google Drive, SharePoint, or Box) when a Salesforce record is deleted using the CloudFiles–Salesforce integration. This helps ensure that folders and their contents do not remain in external storage after the associated Salesforce records—like Accounts, Opportunities, or Cases—are removed. - Enable Custom Actions in CloudFiles Widget: Build an Archive Button with Salesforce Flow - In this tutorial, we'll show how to use the Custom Action functionality of CloudFiles to streamline file management directly from within Salesforce. Custom Actions in CloudFiles allow you to define clickable actions, like Archive, Send E-mail etc., enabling users to trigger tailored Salesforce Flows for advanced automation and control without leaving the record page. - Move Lead folder to Account folder on conversion - In this tutorial, we'll guide you on moving Lead folders into their respective Account folders in any external storage automatically on conversion of Lead. We will use CloudFiles flow actions to create these automated folders. - Renaming a folder in SharePoint when the Record is updated - In this guide, we'll show you how to rename an Account folder in SharePoint linked to an Account record. We'll use CloudFiles flow actions to rename SharePoint Account folders automatically when the Account name changes. - Setting Up a Custom List Action in the CloudFiles Widget - In this tutorial, we'll set up a custom list action in the CloudFiles widget to bulk delete files or folders directly from connected external storage. As an example, we'll demonstrate how to create a "Bulk Delete" button that lets users select multiple items in the widget and remove them permanently from both the storage system (e.g., SharePoint, Google Drive) and the Salesforce record page. --- # Automated nested folders creation based on object relationships https://help.cloudfiles.io/salesforce/automated-nested-folders-creation-based-on-object-relationships # Automated nested folders creation based on object relationships Learn how to automate nested folder creation in external storage systems based on object relationships, generating nested 'Opportunities' folders within associated 'Account' folders using CloudFiles flow actions. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, we'll automate nested folders creation in any external storage system based on object relationships using CloudFiles-Salesforce Integration. As an example, we'll demonstrate how to generate nested ‘Opportunities’ folders within associated ‘Account’ folder when new opportunities are created. We will use CloudFiles flow actions to create these nested folders. ## What to Expect By the end of this tutorial, you can expect to - - Have an Automated Account Folder and Opportunities sub-folder created when a new Account is created. - Have nested folders for newly created opportunities within the associated account's Opportunities sub-folder. - You will be able to attach these folders and sub-folders to your record and will also be able to access these folders within your Salesforce record within CloudFiles widget The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in under 10 minutes. ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/01.gif) ## Tutorial Video Refer to the quick video if you would like to have a visual guide for this tutorial. Read on if you prefer textual content. [Watch video](https://youtu.be/eh74uEFdx4c) ## Pre-requisites Before you start with the set-up, please ensure these steps are completed. ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation Guide to know more. ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/02.png) ### Connect your Cloud Storage to Salesforce using CloudFiles All automations in CloudFiles are activated through Salesforce Flow Builder, utilizing account-wide authentication for external storage libraries through a service (admin) user. To connect your service user, access the setup, click on the external storage of choice and log into your account. For detailed steps, refer to the GIF below for a clearer understanding. ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/03.png) ### Add CloudFiles Widget to Account Record To add the CloudFiles widget to the Account record in Salesforce, first, navigate to the Account page and click on the "Edit Page" button. Once in the Lightning Builder, insert a new tab and drag and drop the "CloudFiles" widget onto the page. Save the changes and exit the builder. Refresh the Salesforce record page, and the widget should now be visible, allowing easy access to view files and folders within Salesforce. ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/04.gif) ## Create Account Folder on new Account creation We will create a record-triggered flow to automatically create account folder whenever a new account is created. An opportunity sub-folder will also be created within the account folder. This is how the final flow looks like - ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/05.png) The details of the flow has been given below - ### 1 - Create Account folder using ‘Create Folder’ action Create Folder action can be used to create folders in any location on any cloud storage platform from Salesforce flows. We will use this action to first create the account’s parent folder. > **Note** — Note: If you use a record triggered flow, make sure you run this action on an asynchronous path as shown below. For detailed understanding, you can refer the Gif below - ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/06.png) ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/07.png) To use the “Create Folder” action, simply click on add element button and search for ‘Create Folder’ as shown below. Once you add this action, it will ask you to fill in certain parameters. ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/08.gif) This action requires a few parameters. Here is a quick reference on what these are and how to get these. For a detailed description, refer to the Create Folder detailed guide. 1 - Library This is the desired Cloud storage where you wish to create the folder. Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, cloudfiles (AWS S3) 2 - Folder name Folder name is the name you wish to give your created Folder. We simply use the Account’s name but you can also create a complex text formula variable as allowed by Salesforce flows. 3 - Destination parameters There are a few other parameters that help specify where the target folder should be created. E.g. in SharePoint, which site, drive and parent folder should this folder get created in. These parameters can be easily copied from within Salesforce using the Content Library Tab. Here is a quick reference of these parameters - - Parent Folder ID -This is the cloud drive generated ID of the folder where you want to create this folder in. - Drive ID -This is important for google drive & sharepoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. These parameters can be copied by accessing your Cloud storage using CloudFiles from within Salesforce. Follow these steps - - Click on App Launcher on top left. Search for the “CloudFiles” App. - In the CloudFiles App, select the Content Library Tab. - Go to your preferred cloud storage. Go to the target folder where you would like to place the created folders in. - Click on ‘View metadata’ button as shown below. A dialog box opens up which shows all the IDs. Copy the ID from here. These steps have been shown in the GIF below - ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/09.gif) This flow action returns various values related to the newly created folder. We will use the newly created folder’s ID in the next step to create a sub-folder for Opportunity. Here’s what the final Create Folder action looks like - ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/10.png) ### 2 - Create Opportunity sub-folder using ‘Create Folder’ action To create opportunity sub-folder, we can simply use the same ‘Create Folder’ action that we used above with a couple of simple tweaks. - Change the ‘Folder Name’ to ‘Opportunities’ or any desired name. - Change the ‘Parent Folder ID’ to the return value of the previous ‘Create Folder’ Action. This way, this new folder will get created inside the account’s folder we created previously. Here’s how your second Create Folder action should look like - ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/11.png) Now that we have Account and Opportunities folder created, we want all of this to show up on the Salesforce record. We will use the ‘Create Attachment’ action to associate the account folder to the Salesforce Account record. Later we will use the CloudFiles widget to actually see and manage the folder from the record. ### 3 - Show Account Folder on Record using ‘Create Attachment’ Action Create Attachment action allows you to attach the created folders to salesforce record. To use this action, simply click on add element button and search for ‘Create Attachment’ as shown below. Once you add this action, it will ask you to fill in certain parameters. “Drive ID” and “Library” parameters will be same as above. Add the remaining parameters as given below - - Resource Id: ID of your Account folder. You can get it from your earlier “Create Folder” action. - Resource Type: folder - Salesforce Record Id: ID of the Salesforce record → {!$Record.Id} Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/12.gif) Here’s how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/13.png) ### 4 - Save the Opportunity sub-folder ID into custom property Create a custom property to store the ‘Opportunities’ sub-folder’s ID, which will facilitate the creation of nested new opportunity folders within the Account’s folder in the next flow. To do so, add ‘Update Triggering record’ action and store the Output ID from ‘Create Opportunity folder’ action into a custom field. Save and activate the flow. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/14.gif) Once the account folder is created, we will create a flow to automatically create opportunity folders within the previously created opportunity sub-folder once a new opportunity is created for the associated Account record. ## Create Nested Opportunity Folder within Account Folder We will create a record-triggered flow to automatically create opportunities folder whenever a new opportunity is created. This folder should be created within the opportunity sub-folder of account folder. This is how the final flow looks like - ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/15.png) The details of the flow has been given below - ### 1 - Create Opportunity folder using ‘Create Folder’ action To create opportunity folder, we can simply use the same ‘Create Folder’ action that we used above with a couple of simple tweaks. - Change the ‘Folder Name’ to Record Name or any desired name. - For ‘Parent Folder ID’, enter the custom property that we created in the previous step. This will ensure the new opportunities folders are created within the Opportunities sub-folder of the Account record. Here’s how your action should look like - ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/16.png) Refer to the GIF below to have a visual understanding of this step ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/17.gif) ### 2 - Show Opportunity Folder on Record using ‘Create Attachment’ Action To show opportunity folder on the record, we can simply use the same ‘Create Attachment’ action that we used above with a couple of simple tweaks. Once you add this action, it will ask you to fill in certain parameters. “Drive ID”, “Library”, “Resource Type” and Salesforce Record Id” will be same as above. For Parent Folder Id, enter the ID of your Opportunity folder. You can get it from your earlier “Create Folder” action. Save and activate the flow. Here’s how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/18.png) ## Test the Nested Folders in Action Now that everything is setup, lets test our flow. Follow the steps below to see the nested folder in action. - Simply create a new Account record in Salesforce and then go the ‘Files’ tab that we added in the previous step. - The flow may take a few seconds to run so click on the refresh icon on top right of the widget. - Once the folder is connected, the system might show you a “Connect to SharePoint” button as shown below. This is a one-time login that your users will need to perform the first time they access CloudFiles using Salesforce. - Once you connect your SharePoint here, you should see the newly created Account Folder and Opportunities sub-folder. - Now create a new opportunity and associate it to the account created earlier. - Navigate to the ‘Files’ tab. You should be able to see newly created Opportunity Folder. - You can quickly navigate to SharePoint as shown below. - You will be able to cross check that the opportunity folder is created within the ‘Opportunities’ sub-folder of respective account folder. These steps are illustrated in the GIF below - ![](https://media.help.cloudfiles.io/tut-automated-nested-folders-creation-based-on-object-relationsh-sf/19.gif) Congratulations! You've successfully created Nested folders based on object relationships using Salesforce flows. --- # Automatically moving files from Salesforce storage to external storage https://help.cloudfiles.io/salesforce/automatically-moving-files-from-salesforce-storage-to-external-storage # Automatically moving files from Salesforce storage to external storage Learn to transfer files from SFDC storage to external storage using CloudFiles, automatically moving uploaded files while deleting originals. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, we will demonstrate how to automatically move files uploaded to Salesforce storage to an external storage system while deleting the originally uploaded files using Salesforce-CloudFiles integration. We will utilize CloudFiles flow actions to facilitate the file movement process. Files in Salesforce can come from a variety of source, for example - from your document generation tool, e-signature tool, email to case, or manual uploads by your users. ## What to Expect By the end of this tutorial, you can expect to - - Copy the files uploaded in Salesforce storage to Account’s parent folder in external storage automatically - Automatically delete the original file stored in Salesforce storage. The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in under 10 minutes. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/01.gif) Our final setup involves a number of flow actions added to a Salesforce flow as shown below. In the sections below, we cover each of these actions and how to configure them. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/02.png) ## 1- Pre-requisites Before you start with the set-up, please ensure these steps are completed. ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation Guide to know more. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/03.png) ### Connect your Cloud Storage to Salesforce using CloudFiles All automations in CloudFiles are activated through Salesforce Flow Builder, utilizing account-wide authentication for external storage libraries through a service (admin) user. To connect your service user, access the setup, click on the external storage of choice and log into your account. For detailed steps, refer to the GIF below for a clearer understanding. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/04.png) ### Add CloudFiles Widget to Account Record To add the CloudFiles widget to the Account record in Salesforce, first, navigate to the Account page and click on the "Edit Page" button. Once in the Lightning Builder, insert a new tab and drag and drop the "CloudFiles" widget onto the page. Save the changes and exit the builder. Refresh the Salesforce record page, and the widget should now be visible, allowing easy access to view files and folders within Salesforce. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/05.gif) ## 2- Create a Record-Triggered Flow In this step, we will create a record-triggered flow on the CloudFiles Event custom object. This flow is triggered whenever a CloudFiles Event record is created and meets the defined entry conditions. This flow will handle two key operations: - Copying files from Salesforce storage to external storage - Deleting the original files from Salesforce storage after a successful copy Refer to the GIF below for a visual walkthrough of creating the record-triggered flow and configuring the start conditions. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/06.gif) CloudFiles generates event records for multiple types of actions. To ensure the flow runs only for relevant scenarios, we will configure entry criteria so the flow is triggered only when a CloudFiles Event record is created. The detailed handling of different event types—such as file uploads and file copy confirmations—is managed later in the flow using Decision elements. Each event type is processed in a separate branch, which we will configure step by step in the following sections. ## Copy Uploaded files from Salesforce storage to External storage CloudFiles event records can be generated for a variety of actions. In this section, we will focus on filtering events triggered when a file is attached to the Notes & Attachments section of an Account. When such an event is detected, the flow will: - Retrieve the Account’s connected folder in the external storage system, and - Copy the uploaded file from Salesforce storage to the corresponding Account folder in external storage. In addition to handling file uploads, the flow also includes a second condition to detect successful file copy events. This condition is used to initiate the cleanup process by deleting the original file from Salesforce storage, ensuring that files are retained only in the external storage system. These conditions are implemented using Decision elements, with each outcome handled in a separate branch. The configuration of each branch is explained step by step in the sections that follow. ### 1 - Use a Decision Element to Identify Salesforce File Attached Events Start by adding a Decision element to the flow. This element is used to filter CloudFiles Event records and ensure that the flow proceeds only when a file is uploaded to Salesforce storage. Create a new outcome specifically for file upload events and configure the condition as follows: - $Record → Type equals salesforce-file-attached This condition ensures that only events generated when a file is attached in Salesforce are processed in this branch of the flow. This is how the Outcome Details configuration looks. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/07.png) Once the file upload event is identified, we need to determine which Account the file was uploaded to. To retrieve the required Account and folder information, we will use two CloudFiles actions: - Get Event Details - Get Connected Folder These actions allow us to extract the Account ID from the event and locate the corresponding Account folder in external storage. ### 2 - Get Salesforce File Attached Event Details Using the Get Event Details Action To retrieve detailed information about the Salesforce File Attached event, add the Get Event Details action to the flow. This action provides key metadata related to the event, including the Salesforce record ID (Account ID) associated with the file upload. This Account ID is required in the subsequent steps to locate the Account’s connected folder in external storage. When configuring the action: - Add the Get Event Details CloudFiles action - In the Event (Custom Object) placeholder, select Triggering Record Refer to the GIF below for a visual walkthrough of configuring the Get Event Details action. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/08.gif) ### 3 - Get Account Folder Details Using the Get Connected Folder Action The previous step returns several outputs, including the Salesforce record (Account) ID associated with the file upload event. To locate the corresponding Account folder in external storage, we will use the Get Connected Folder action. When configuring this action: - Add the Get Connected Folder CloudFiles action - In the Parent ID field, select Get File Attached Event Details -> SalesforceFiles Details → ParentId This configuration allows CloudFiles to identify and retrieve the connected external storage folder associated with the Account. Refer to the GIF below for a visual walkthrough of configuring the Get Connected Folder action. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/09.gif) Once the Account’s parent folder details are retrieved, we can proceed to copy the uploaded files from Salesforce storage to the external storage system. ### 4 - Copy Uploaded Files to External Storage Using the Copy Salesforce Files Action To copy files from Salesforce storage to an external storage system (such as SharePoint, Google Drive, or other supported providers), we will use the Copy Salesforce Files action. Add the Copy Salesforce Files CloudFiles action to the flow and configure the following parameters: - Content Document IDs Specify the Salesforce IDs of the uploaded files. Select Get File Attached Event Details -> SalesforceFiles Details → ContentDocumentIds from the output of the Get Event Details action. - Drive ID Identify the external storage drive where the file should be copied. Select DriveId from the output of the Get Connected Folder action. - Folder ID Specify the target folder in the external storage system where the file should be copied. Select the appropriate Folder ID from the output of the Get Connected Folder action. - Library Select the external storage provider (for example, SharePoint, Google Drive, etc.). - Salesforce Record ID Specify the Salesforce record to which the original file was attached. Select Get File Attached Event Details -> SalesforceFiles Details → ParentId from the output of the Get Event Details action. This configuration ensures that the uploaded file is copied to the correct Account folder in external storage and remains properly associated with the Salesforce record. This is how the Copy Salesforce Files action is configured in the flow. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/10.png) Refer to the GIF below for a visual walkthrough of this step. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/11.gif) ## Delete files from the Salesforce storage Once the files have been successfully copied from Salesforce storage to the external storage system, the final step is to delete the original files from Salesforce storage. This ensures that files are retained only in external storage, helping reduce Salesforce storage usage. To achieve this, we will add another branch to the existing Decision element in the flow. This branch will handle events that confirm a successful file copy and will initiate the deletion process. The detailed configuration of this branch is covered in the steps that follow. ### 1 - Use a Decision Element to Identify Successful File Copy Events Add a new outcome to the existing Decision element to determine when a file has been successfully copied from Salesforce storage to external storage. Configure the outcome with the following condition: - $Record → Type equals salesforce-file-copied This condition ensures that the flow proceeds only after CloudFiles confirms that the file copy operation has completed successfully. This is how the Outcome Details configuration looks. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/12.png) ### 2 - Get Copied File Event Details Using the Get Event Details Action To retrieve details of the Salesforce File Copied event, add the Get Event Details action to the flow. This action provides information related to the copied file, including the Content Version ID, which is required for identifying and deleting the original file in Salesforce storage. When configuring this action: - Add the Get Event Details CloudFiles action - In the Event (Custom Object) dropdown, select Triggering Record This is how the Get Event Details action is configured in the flow. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/13.png) ### 3 - Get the Content Version of the Original Salesforce File Using Get Records To identify the original file uploaded to Salesforce storage, we need to retrieve its Content Version record. A Content Version represents a specific version of a file stored in Salesforce and contains the reference required to delete the associated document. To do this, add a Get Records element to the flow and configure it as follows: - Object: ContentVersion - Condition: ContentVersionId equals Get File Copied Event Details -> SalesforceFileCopied → ContentVersionId (This value is obtained from the output of the previous Get File Copied Event Details action.) This configuration allows the flow to locate the correct Content Version associated with the copied file. Refer to the GIF below for a visual walkthrough of configuring the Get Records element. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/14.gif) ### 4 - Delete original file using 'Delete Records' action Once the Content Version of the original file has been retrieved, the final step is to delete the corresponding Content Document from Salesforce storage. To do this, add a Delete Records element to the flow and configure it as follows: - Object: ContentDocument - Condition: ContentDocumentId equals Get Content Version -> ContentDocumentId (This value is obtained from the output of the previous Get Records action.) This step permanently removes the original file from Salesforce storage after it has been successfully copied to external storage. Refer to the GIF below for a visual walkthrough of configuring the Delete Records element. ![](https://media.help.cloudfiles.io/tut-automatically-moving-files-from-salesforce-storage-to-extern-sf/15.gif) That's it! Save and activate the flow to complete the setup. ## Test the flow in action Now that the setup is complete, let's test the flow to verify that files are automatically moved from Salesforce storage to the Account folder in external storage. Follow the steps below to validate the configuration: - Upload a file to an Account - Create a new Account record or open an existing one. - Upload a file in the Notes & Attachments section. - Verify the file in external storage - Navigate to the Files tab. - The flow may take a few seconds to execute, so click the refresh icon in the top-right corner of the CloudFiles widget if needed. - Confirm that the uploaded file appears in the Account's folder in external storage. - Confirm deletion from Salesforce storage - Navigate back to Notes & Attachments. - Verify that the original file has been removed from Salesforce storage. Congratulations! You've successfully configured the automation to move files from Salesforce storage to the corresponding Account folder in external storage. --- # Copy Email Attachments to Case Folders in external storage if Email-to-Case is activated https://help.cloudfiles.io/salesforce/copy-email-attachments-to-case-folders-in-external-storage-if-email-to-case-is-activated # Copy Email Attachments to Case Folders in external storage if Email-to-Case is activated Guide to automatically copy Case email attachments to corresponding Case record folders in external storage using CloudFiles-Salesforce Integration when Email-to-Case is enabled. > Kind: Tutorial · Updated: Jul 4, 2026 ## What to Expect By the end of this tutorial, you can expect to - - Have Case folders created in external storage automatically whenever a new case record is created. - If your Org has been enabled to create Case records through Email-to-Case, then copy the Case email attachments into corresponding case folder in external storage. The GIF below shows the expected output. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/01.gif) The configuration for this involves a few Salesforce flows with CloudFiles actions in them. In the sections below, we cover each of these Salesforce flows , the actions used in them and how to configure them. ## Pre-requisites Before you start with the set-up, please ensure these steps are completed. ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation guide to know more. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/02.png) ### Connect your Cloud Storage to Salesforce using CloudFiles All automations in CloudFiles are activated through Salesforce Flow Builder, utilizing account-wide authentication for external storage libraries through a service (admin) user. To connect your service user, access the setup, click on the external storage of choice and log into your account. For detailed steps, refer to the GIF below for a clearer understanding. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/03.gif) ### Set Up Email-to-Case Set up Email-to-Case to have Salesforce automatically create case records when email messages are sent to the configured support email addresses. If you haven't yet, you can follow this Set Up Email-to-Case Salesforce Help Doc. ### Add CloudFiles Widget to Case Record Page To add the CloudFiles widget to the Case record page in Salesforce, first, navigate to any Case page and click on the "Edit Page" button. Once in the Lightning Builder, insert a new tab and drag and drop the "CloudFiles" widget onto the canvas. Save the changes and exit the builder. Refresh the Salesforce record page, and the widget should now be visible, allowing easy access to view files and folders within Salesforce. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/04.gif) ## Flow 1 - Create and Attach Case Folder on new Case creation We will create a record-triggered flow to automatically create Case folder whenever a new Case is created. This is how the final flow looks like - ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/05.png) ### 1 - Configure the Record Triggered Flow on 'Case' Object To configure the record-triggered flow on the 'Case' Object, follow these detailed instructions: - Create a new flow and select 'Record-Triggered' as the flow type. - Specify the object as 'Case'. - Choose the trigger option 'A record is created'. - Optimize the flow for 'Actions and Related Records'. - Check the 'Include Asynchronous Path' checkbox to enable the 'Run Asynchronously' path in the flow. > **NOTE** — NOTE - In Record-triggered flows, make sure you run CloudFiles actions only in 'Run Asynchronously' path. Refer to the GIF below for a visual understanding of this step - ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/06.gif) ### 2 - Create Case Folder using ‘Create Folder’ Action In the 'Run Asynchronously' path add a Create Folder action to create Case folders at any desired location in connected external storage. Once you add this action, it will ask you to fill in certain parameters. - Library - This is the desired Cloud storage where you wish to create the folder. Input sharepoint for SharePoint, google for Google Drive, onedrive for OneDrive Personal & OneDrive for business, dropbox for Dropbox, box for Box, cloudfiles for AWS s3. - Folder name - Input the Folder name you wish to give your created Folder. Here, we input the Case number {!$Record.CaseNumber}but you can also use a complex text formula if you wish to. - The next two parameters i.e. Parent Folder ID and Drive ID help specify where the target folder should be created. E.g. in SharePoint, which site, drive and parent folder should this folder get created in. These parameters can be easily copied from within Salesforce using the 'Content Library' tab on CloudFiles. - Parent Folder ID -This is the cloud drive generated ID of the folder where you want to create this folder in. - Drive ID -This is important for google drive & sharepoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. These parameters can be copied by accessing your Cloud storage using CloudFiles from within Salesforce. Follow these steps - - Click on App Launcher on top left. Search for the “CloudFiles” App. - In the CloudFiles App, select the Content Library Tab. - Go to your preferred cloud storage. Go to the target folder where you would like to place the created folders in. - Click on ‘View metadata’ button as shown below. A dialog box opens up which shows all the IDs. Copy the ID from here. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/07.gif) For a detailed description of the Create Folder action, refer to the Create Folder detailed guide. This flow action returns various values related to the newly created Case folder. We will use the newly created folder’s details in the next step to attach it to the Case, so that the folder is visible in the Case record page's CloudFiles widget. ### 3 - Attach created Case Folder to Case record using ‘Create Attachment’ Action Add a Create Attachment action to attach the created Case folder to Case record. Attaching (or associating) our newly created Case folder is important since this will enable us to see and operate on the folder contents right from the Case record. Once you add this action, it will ask you to fill in certain parameters.“Drive ID” and “Library” parameters will be same as those input in Create Folder action. Add the remaining parameters as given below - Add the parameters as given below - - Resource Id - Input the 'resource Id' of the folder to be attached. se the output of “Create Case Folder” action as 'Create Case Folder' > id (resource id) - Resource Type - Input the Resorce Type of the resource to be attached. Here, simply enter folder. - Salesforce Record Id: ID of the Salesforce Record Case onto which the resource is to be attached. Here, input the flow triggering Case Record Id i.e. {!$Record.Id} Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/08.gif) ### 4 - Save and Activate the flow. Once the Flow is activated, for every new case record created, this flow automatically creates a Case folder in the external storage at the desired location and attaches it to the Case record. ## Flow 2 - Copy Case Email attachments to Case Folder on new Email message We will create a record-triggered flow on Email message object to automatically copy Email attachments into corresponding Case folder. This is how the final flow looks like - ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/09.png) ### 1 - Configure the Record Triggered Flow on 'Email Message' Object To configure the record-triggered flow on the 'Email Message' Object, follow these detailed instructions: - Create a new flow and select 'Record-Triggered' as the flow type. - Specify the object as 'Email Message'. - Choose the trigger option 'A record is created'. - Set the entry conditions, to trigger the flow only when the Email Message has files attached to it. For this, select 'Condition Requirements' as 'All Conditions Are Met (AND). Set the single condition, with field as 'HasAttachment', operator as 'Equals' and Value as 'TRUE'. - Optimize the flow for 'Actions and Related Records'. - Check the 'Include Asynchronous Path' checkbox to enable the 'Run Asynchronously' path in the flow. > **NOTE** — NOTE - In Record-triggered flows, make sure you run CloudFiles actions only in 'Run Asynchronously' path. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/10.gif) ### 2 - Get 'Content Document Link' records linked to the Email Message In the 'Run Asynchronously' path add a 'Get Records' element to output all the 'Content Document Link' records linked to the 'Email Message' that triggered the flow. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/11.gif) This element outputs a 'Content Document Link Record Collection' with all the records associated with the flow triggering Email Message record. The output of this element shall be used in subsequent elements of the flow. ### 3 - Add a pause element to ensure Case Folder creation Add a 'CloudFiles: Delay' Apex action into the flow, positioned after the 'Get Records' element and before retrieving details of the corresponding Case folder in the subsequent action. The 'CloudFiles: Delay' Apex action functions as a 'pause for a given time' element before the flow proceeds to execute the next action or element. The execution of "Flow 1", responsible for Case Folder creation and attachment, may encounter delays. To prevent flow errors when fetching Case folder details before the completion of "Flow 1", this delay element is incorporated into the flow. Once you add the 'CloudFiles: Delay' Apex action, it will ask you to fill in a single parameter. Delay(milli seconds) - The amount of time the pause acts for in milliseconds. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/12.gif) > **NOTE** — NOTE - Avoid setting a long pause duration as it may result in flow timeouts and errors. For this specific flow, a delay of 10,000-15,000 milliseconds should suffice. ### 4 - Get Case Folder of the Email Message's corresponding Case Add a Get Connected Folder action to output the details of corresponding Case record's folder. Once you add the action, it will ask you to fill in a single parameter. ParentId - Input the Salesforce Record Id whose connected folder is to fetched. Here, input the flow triggering Email Message record's Case Id as 'Record' > 'Case ID' i.e. {!$Record.ParentId} Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/13.gif) In case the Salesforce Record has got a single folder attached to it, then Get Connected Folder outputs the attached folder details. ### 5 - Gather the Content Document IDs of all attachments to be copied. Add a 'Loop' element and set it to loop through the 'Content Document Link Record Collection' output by the 'Get Email Attachments' element. For each 'Content Document Link' in the loop, with an 'Assignment' element, add its corresponding 'Content Document ID' to a text collection variable. After the end of the loop, the text collection variable will contain all the Content Document IDs of the email attachments. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/14.gif) ### 6 - Copy the Email Attachments' Content Documents to the Case Folder Add a Copy Salesforce Files Apex action to Copy the Email Attachments to the fetched Case folder. Once you add this action, it will ask you to fill in certain parameters. Add the parameters as given below - - Content Document Ids - Input the Content Document Id Collection which are to be copied. Here, input the Content Document Id Collection gathered by the Loop. - DriveId - Input the copy destination's Drive Id (Only for SharePoint and Google Drive) Here, input the 'Drive Id' of Case Folder output by 'Get Case Folder' action. - Folder Id - Input the copy destination's Folder Id. Here, input the 'Folder Id' of Case Folder output by 'Get Case Folder' action. - Library - Input he copy destination's Cloud storage. Input sharepoint for SharePoint, google for Google Drive, onedrive for OneDrive Personal & OneDrive for business, dropbox for Dropbox, box for Box, cloudfiles for AWS s3. You can even use the outputs of the 'Get Case Folder' action. Here, input the Cloud Storage or use 'Library' output by 'Get Case Folder' action. - Salesforce Record Id (Optional) - Optionally input the Record Id from which the files will be copied. Here, optionally input the Email Message Id from which the files will be copied. > **NOTE** — NOTE - The 'Content Document Ids' parameter only accepts a text collection as a valid input. Even if you have only one Content Document Id, you must input it as a text collection. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-copy-email-attachments-to-case-folders-in-external-storage-i-sf/15.gif) ### 7 - Save and Activate the flow Once the Flow is activated, for every new Email received , this flow automatically copies the email attachments to Case folder attached to respective Case record. ## Test the Flows in action Now that everything is setup, lets test our flows. Follow the steps below to see this automation in action. - To create a case, send an Email to Email address used in Email-to-Case setup. - Attach a few files to this email. These can be any type or size of files. - Open the created case. It may take upto a minute for the case to get created by Email-to-Case functionality. - Within the CloudFiles widget on Case record page: - Find an automatically created Case folder in the configured external storage. - Find all the Email attachments copied into the Case Folder. > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see any changes, try refreshing the CloudFiles widget a couple of times. Congratulations! You've successfully configured flows to automatically create Case folders for new Case records and copy Case Email Attachments to their respective Case folder in external storage. --- # Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects https://help.cloudfiles.io/salesforce/create-automated-folder-hierarchies-for-managing-external-files-from-salesforce-objects # Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects Learn to create automated folders & sub-folders in any external storage like sharepoint directly from any Salesforce Object using Salesforce Integration. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, we'll guide you on creating automated folders and sub-folders in any external storage directly from any Salesforce Object using CloudFiles-Salesforce Integration. We will use CloudFiles flow actions to create these automated folders. If you have a basic grasp of Salesforce flows, you can expect to finish the tutorial in under 10 minutes. ## What to Expect By the end of this tutorial, you can expect to - - Create an account object and have a folder created for it automatically in your backend storage. - Have sub-folders created inside the account folder as per your custom requirement. - You will be able to see these folders and sub-folders from your record. - You will also be able to do various file & folder operations such as upload, preview, delete, edit etc.. right from the record. The GIF below shows the expected output. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/01.gif) Our final setup involves a couple of flow actions added to a Salesforce flow as shown below. In the sections below, we cover each of these actions and how to configure them. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/02.png) ## Tutorial Video Refer to the quick video if you would like to have a visual guide for this tutorial. Read on if you prefer textual content. [Watch video](https://youtu.be/Ra5VgB8V_iU) ## 1- Pre-requisites Before you start with the set-up, please ensure these steps are completed. ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation guide to know more. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/03.png) ### Connect your Cloud Storage to Salesforce using CloudFiles All automations in CloudFiles are activated through Salesforce Flow Builder, utilizing account-wide authentication for external storage libraries through a service (admin) user. To connect your service user, access the setup, click on the external storage of choice and log into your account. For detailed steps, efer to the GIF below for a clearer understanding. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/04.gif) ## 2 - Create Account Folder using 'Create Folder' Action "Create Folder" action can be used to create folders in any location on any cloud storage platform from Salesforce flows. We will use this action to first create the account's parent folder. > IMPORTANT - If you use a record triggered flow, make sure you run this action on an asynchronous path as shown below. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/05.png) Create a new flow in your Salesforce org, select the trigger and add an asynchronous path as shown in the GIF below. We will then add CloudFiles flow actions on the asynchronous path. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/06.gif) To use the "Create Folder" action, simply click on add element button on the asynchronous path and search for 'Create Folder' as shown below. Once you add this action, it will ask you to fill in certain parameters. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/07.gif) This action requires a few parameters. The Library parameter is the desired Cloud storage where you wish to create the folder. Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, cloudfiles (AWS S3). The Folder name is the name you wish to give your created Folder. We simply use the Account's name but you can also create a complex text formula variable as well. We also need to enter values for Drive ID & Parent Folder ID. This is covered in the next section. The GIF below shows how to populate the Library & Folder name parameter. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/08.gif) ## 3 - Configure Destination Parameters in Flow Action In the 'Create Folder' action, There are a few other parameters that help specify where the target folder should be created. E.g. in SharePoint, which site, drive and parent folder should this folder get created in. Here is a quick reference of destination parameters - - Parent Folder ID - This is the cloud drive generated ID of the folder where you want to create this account folder in. - Drive ID - This is important for google drive & sharepoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. These parameters can be easily copied from within Salesforce using the CloudFiles Content Library Tab. Follow these steps - - Click on App Launcher on top left. Search for the "CloudFiles" App. - In the CloudFiles App, select the Content Library Tab. - Go to your preferred cloud storage. Go to the target folder where you would like to place the created folders in. - Click on 'View metadata' button as shown below. A dialog box opens up which shows all the IDs. Copy the ID from here. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/09.gif) For a detailed description of the Create Folder action, refer to the Create Folder detailed guide. This flow action returns various values related to the newly created folder. We will use the newly created folder's ID in the next step to create a sub-folder. Here's how our final Create Folder action looks like. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/10.png) ## 4 - Create Sub-Folders using 'Create Folder' Action To create sub-folders, we can simply use the same 'Create Folder' action that we used above with a couple of simple tweaks. - Change the 'Folder Name' to reflect the sub-folder you want to create. We are creating 'Proposals' sub-folder inside our account folder. - Change the 'Parent Folder ID' to the return value of the previous Create Folder Action. This way, this new folder will get created inside the account's folder we created previously. Here's how your second Create Folder action should look like. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/11.png) You can choose to have as many sub folders as you want. Simply duplicate the Create Folder action. You can also create sub-sub-folders and even deeper hierarchies using this method. If you have very large or complex folder structure, we recommend using folder cloning method instead. Now that we have parent and sub-folders created, we want all of this to show up on the Salesforce record. We will use the 'Create Attachment' action to associate the account folder to the Salesforce Account record. Later we will use the CloudFiles widget to actually see and manage the folder from the record. ## 5 - Show Folder on Record using 'Create Attachment' Action Create Attachment action allows you to attach the created folders and sub-folders to salesforce record. Attaching (or associating) our newly created folder is important since this will enable us to see and operate on the folder contents right from the Salesforce record. To use this action, simply click on add element button and search for 'Create Attachment' as shown below. Once you add this action, it will ask you to fill in certain parameters. "Drive ID" and "Library" parameters will be same as above. Add the remaining parameters as given below - - Resource Id - ID of your Parent folder. You can get it from the output of your first "Create Folder" action (The one we created in Step 2 above). - Resource Type - Simply use the string 'folder' for this (without quotes) - Salesforce Record Id - ID of the Salesforce record → {!$Record.Id} That's it. Now our flow configuration is complete. Save and activate the flow. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/12.gif) Here's how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/13.png) ## 6 - Add CloudFiles Widget to Account Record Now that folders and sub-folders are created and attached to the record, we will add the CloudFiles widget to the account record in order to view the files and folders within salesforce. Follow the steps below - - Go to any Account record and click "Edit Page" Button. - Lightning builder for this page will open. Insert a new tab and drag and drop the "CloudFiles" widget. - Save and exit the builder. Refresh the Salesforce record page. The widget should now show up. Refer to the GIF below to get a visual understanding of this step. The inserted widget will show a blank screen but you don't need to worry about it. Move on to the next step. ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/14.gif) ## 7 - Test the Automated Folders in Action Now that everything is setup, lets test our flow. Follow the steps below to see this automation in action. - Simply create a new Account record in Salesforce and then go the 'Files' tab that we added in the previous step. - The flow may take a few seconds to run so click on the refresh icon on top right of the widget. - Once the folder is connected, the system might show you a "Connect to SharePoint" button as shown below. This is a one-time login that your users will need to perform the first time they access CloudFiles using Salesforce. - Once you connect your SharePoint here, you should see the newly created folder and the sub-folders inside. - You can quickly navigate to SharePoint as shown below. These steps are illustrated in the GIF below - ![](https://media.help.cloudfiles.io/tut-create-automated-folder-hierarchies-for-managing-external-fi-sf/15.gif) Congratulations! You've successfully created an automation to create custom folder and sub-folder hierarchies using Salesforce flows. We have shown only a very specific part of this automation for the sake of speed. However you can customize these flow actions to a high degree to replicate any process imaginable. --- # Delete attached folder when Account record is deleted https://help.cloudfiles.io/salesforce/delete-attached-folder-when-account-record-is-deleted # Delete attached folder when Account record is deleted Learn how to automatically delete an attached folder from your external storage system when a Salesforce Account record is deleted, using the CloudFiles-Salesforce Integration. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, we’ll demonstrate how to automatically delete an attached folder from your external storage system (Google Drive / SharePoint / Box / etc.) when a Salesforce record is deleted, using the CloudFiles–Salesforce Integration. This setup is useful when you want to ensure folders do not remain in external storage after the related Salesforce record is removed. For example, when an Account, Opportunity, or Case is deleted, the corresponding folder and its contents can also be deleted automatically. ## What to Expect By the end of this tutorial, you can expect to — - Automatically trigger CloudFiles automation to delete the attached folder from the connected external storage system when an Account is deleted. - Keep external storage clean and consistent by removing folders tied to deleted Salesforce records. ## Pre-requisites Before you start with the set-up, please ensure these steps are completed. ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation Guide to know more. ![](https://media.help.cloudfiles.io/tut-delete-attached-folder-when-account-record-is-deleted-sf/01.png) ### Connect your Cloud Storage to Salesforce using CloudFiles All automations in CloudFiles are activated through Salesforce Flow Builder, utilizing account-wide authentication for external storage libraries through a service (admin) user. To connect your service user, access the setup, click on the external storage of choice and log into your account. For detailed steps, refer to the GIF below for a clearer understanding. ![](https://media.help.cloudfiles.io/tut-delete-attached-folder-when-account-record-is-deleted-sf/02.png) ### Add CloudFiles Widget to Account page Add the CloudFiles widget to Account page in order to view the files and folders within salesforce. Follow the steps below - - Go to any Account record and click “Edit Page” Button. - Lightning builder for this page will open. Insert a new tab and drag and drop the "CloudFiles" widget. - Save and exit the builder. Refresh the Salesforce record page. The widget should now show up. - Follow the above steps and add CloudFiles widget to the Lead record page as well. Refer to the GIF below to get a visual understanding of this step. The inserted widget may show a blank screen but you don't need to worry about it. Move on to the next step. ![](https://media.help.cloudfiles.io/tut-delete-attached-folder-when-account-record-is-deleted-sf/03.gif) ### Automatic folder creation for Accounts For this tutorial, We require automated folders to be created upon the creation of new Account. To accomplish this, we will create a record-triggered flow using CloudFiles actions. For a comprehensive guide on the process of creating automated folders, please refer to our tutorial at Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects This is how the flow would look like - ![](https://media.help.cloudfiles.io/tut-delete-attached-folder-when-account-record-is-deleted-sf/04.png) ## Flow - Folder deletion on record deletion - In this section, we will create two Salesforce flows: - Flow 1 captures the Account deletion event and creates a CloudFiles Event (cldfs__CloudFilesEvent__c) record with the Type set to custom-account-deleted. - Flow 2 listens for this event type and triggers CloudFiles automation to delete the folder attached to the deleted Account in your external storage system. > **Why two flows?** — Why two flows?Salesforce record-triggered flows that run “A record is deleted” trigger cannot reliably perform external actions (like deleting a folder in Google Drive/SharePoint). That’s why we capture the deletion as an event first, then process the deletion safely using a separate event-driven flow. ### Flow 1 - Capture Account deletion This flow runs when an Account is deleted and creates a CloudFiles Event record containing the deleted Account’s record Id. This event is later used by Flow 2 to trigger folder deletion. ### 1 - Configure a Record Triggered Flow - Go to Setup → Flows → New Flow - Choose Record-Triggered Flow - Configure the Start element: - Object: Account - Trigger the Flow When: A record is deleted ![](https://media.help.cloudfiles.io/tut-delete-attached-folder-when-account-record-is-deleted-sf/05.png) ### 2 - Create CloudFilesEvent record Create a new record of object: cldfs__CloudFilesEvent__c and use the following field values: - cldfs__Type__c = custom-account-deleted - cldfs__Request_Id__c = {!$Record.Id} ![](https://media.help.cloudfiles.io/tut-delete-attached-folder-when-account-record-is-deleted-sf/06.png) ### Flow 2 – Process Account Folder Deletion In this flow, we process the CloudFiles Event record created by Flow 1 and delete the folder attached to the deleted Account. This flow triggers when a CloudFiles Event (cldfs__CloudFilesEvent__c) record is created and the event Type equals custom-account-deleted ### 1 - Configure a Record Triggered Flow - Create a new Record-Triggered Flow. - Select the Object as: CloudFiles Event (cldfs__CloudFilesEvent__c) - Configure the Trigger: - Trigger the Flow When: A record is created - Entry Condition: Type Equals custom-account-deleted - Set Optimize the Flow for: Actions and Related Records - Enable Run Asynchronously, since CloudFiles actions are executed asynchronously. ![](https://media.help.cloudfiles.io/tut-delete-attached-folder-when-account-record-is-deleted-sf/07.png) ### 2 - Get Account Folder Once the flow is triggered, we need to identify the folder connected to the deleted Account. To do this, we use the CloudFiles Apex Action: CloudFiles: Get Connected Folder. - Add an Action element and select: CloudFiles: Get Connected Folder - Set the input value: - Parent Id = Request Id from the CloudFiles Event ({!$Record.cldfs__RequestId__c}) ![](https://media.help.cloudfiles.io/tut-delete-attached-folder-when-account-record-is-deleted-sf/08.png) ### 3 - Delete Account Folder Now that we have the folder details from the previous step, we can delete the folder from external storage using the CloudFiles Apex Action: CloudFiles: Delete Resource. - Add an Action element and select: CloudFiles: Delete Resource - Map the required inputs using outputs from Get Account Folder: - Drive Id = Outputs from Get Account Folder → Drive Id - Library = Outputs from Get Account Folder → Library - Resource Id = Outputs from Get Account Folder → Resource Id - Resource Type = folder ![](https://media.help.cloudfiles.io/tut-delete-attached-folder-when-account-record-is-deleted-sf/09.png) ## Save and Activate the Flows Save and activate both flows. Once they are active, whenever an Account is deleted, Flow 1 creates a CloudFiles Event (cldfs__CloudFilesEvent__c) record with the Type set to custom-account-deleted and stores the deleted Account’s record Id in the event. This triggers Flow 2, which retrieves the connected folder using the CloudFiles Event information and deletes the folder asynchronously from the configured external storage system. ## Test the Flows in Action Now that everything is set up, let’s test the flows. Follow the steps below to confirm the folder deletion automation is working as expected. - Create a new Account record. This should create and attach a folder that is visible in the CloudFiles widget on the Account record page. - Open the Account record and confirm the folder is connected correctly in the CloudFiles widget. - Delete the Account record. - Navigate to CloudFiles Events (cldfs__CloudFilesEvent__c) and confirm that a new event is created with Type custom-account-deleted. - Verify that the connected Account folder has been deleted from your external storage system (Google Drive / SharePoint / Box). --- # Enable Custom Actions in CloudFiles Widget: Build an Archive Button with Salesforce Flow https://help.cloudfiles.io/salesforce/enable-custom-actions-in-cloudfiles-widget-build-an-archive-button-with-salesforce-flow # Enable Custom Actions in CloudFiles Widget: Build an Archive Button with Salesforce Flow Learn how to use CloudFiles Custom Actions to build an Archive button that triggers a Salesforce Flow, moving selected files or folders into a designated archive folder in your external storage. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, we'll show how to use the Custom Action functionality of CloudFiles to streamline file management directly from within Salesforce. Custom Actions in CloudFiles allow you to define clickable actions, like Archive, Send E-mail etc., enabling users to trigger tailored Salesforce Flows for advanced automation and control without leaving the record page. We'll demonstrate this by building an Archive feature, where users can click an "Archive" button in the CloudFiles widget to move selected files or folders into a designated archive folder in your external storage. This is especially useful during processes like lead conversion, where you want to clean up and store files without deleting them permanently. ## What to Expect By the end of this tutorial, you will be able to: - Automatically create a main folder with custom sub-folders in your external storage when a Lead is created in Salesforce, and access them directly from the Salesforce record using the CloudFiles widget. - You will be able to see the Custom Resource Action button you created displayed next to each file and folder. - By clicking the button, you can move the file or folder to a predefined location (e.g., a predefined archive folder). The GIF below shows the expected output. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/01.gif) ## Pre-requisites Before you start with the set-up, please ensure these steps are completed. ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation guide to know more. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/02.png) ### Connect your Cloud Storage to Salesforce using CloudFiles All automations in CloudFiles are activated through Salesforce Flow Builder, utilizing account-wide authentication for external storage libraries through a service (admin) user. To connect your service user, access the setup, click on the external storage of choice and log into your account. For detailed steps, refer to the GIF below for a clearer understanding. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/03.gif) ### Add CloudFiles Widget to Lead record page Add the CloudFiles widget to Lead record page in order to view the files and folders within salesforce. Follow the steps below - - Go to any Lead record and click "Edit Page" Button. - Lightning builder for this page will open. Insert a new tab and drag and drop the "CloudFiles" widget. - Save and exit the builder. Refresh the Salesforce record page. The widget should now show up. Refer to the GIF below to get a visual understanding of this step. The inserted widget may show a blank screen but you don't need to worry about it. Move on to the next step. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/04.gif) ### Automatic folder creation for Leads For this tutorial, We require automated folders to be created upon the creation of new Lead. To accomplish this, we will create two distinct record-triggered flows using CloudFiles actions. For a comprehensive guide on the process of creating automated folders, please refer to our tutorial at Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects This is how the flow would look like - ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/05.png) ## Configure the CloudFiles Widget to Add a Custom Resource Action Button and Link It to the Flow In this section, we'll walk through how to configure the CloudFiles Widget to add a custom Resource Action button and link it to the Flow we are going to create in the next steps. You'll learn how to: - Set up the Resource Action within the widget configuration. - Link the action to your autolaunched Flow with the appropriate input variables. Once the configuration is complete, copy the generated Widget Configuration ID and paste it into the CloudFiles widget settings on the Lead record page in Salesforce. This step ensures that the correct Resource Action button appears in the widget, allowing users to trigger the archive functionality. ### Setting Up Widget Flow Actions in CloudFiles Widget Follow these steps to configure Resource Actions in the CloudFiles widget - Step 1: Open Widget Configuration - Navigate to the CloudFiles Document Management App. - Open the "Widget Configuration" page. Step 2: Locate Resource Actions Section Scroll to the bottom of the page, where you'll find the Resource Actions section. Refer to the image below for a visual understanding - ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/06.png) Step 3: Specify Attributes for Actions For each List Action, provide the following details: - Label – This is the name that will appear on the widget button (e.g., Archive). - Flow URL – The URL of the Flow you want to trigger, including input variables. - Flow Type – Choose the type of Flow from the dropdown. For this tutorial, select: Autolaunched Flow ```text flow/Archive_File_or_Folders?resource={!resource}&recordId={!recordId} ``` In this example: - {!resource} refers to the specific file or folder from which you are invoking the flow through the custom Resource action. - {!recordId} is the Salesforce record (Lead) from which the action is being triggered. Step 4: Save and Link the Widget - After entering all configuration values, click Save. - Copy the generated Widget Configuration ID. - Navigate to the Lead record page in Salesforce and paste this ID into the CloudFiles widget configuration panel. This step enables the Resource Action button to appear within the widget, allowing users to move the file or folder to the Archived folder with just a click. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/07.gif) ## Flow – Move a Lead File or Folder to an Archived Folder Using the CloudFiles Resource Action In this section, we'll create a Custom Resource Action-driven Flow to move folder or files into the Archived folder based on specific business rules — for example, if you want to move a folder to archived storage after a certain period of inactivity or elapsed time. We'll configure an Autolaunched Flow (no trigger) that runs when the user clicks the Resource Action button next to a specific file or folder in the CloudFiles widget. The flow will: - Create a parent folder named after the Lead inside the centralized Archived location in your external storage. - Move the specific file or folders into that Lead-specific archive folder. - If a folder with the Lead's name already exists in the Archived location, the Flow will reuse it and place the selected content inside—ensuring organized and non-duplicative storage. This is how the final flow looks like - ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/08.png) The details of the flow has been given below - ### 1 - Configure a Autolaunched Flow We'll begin by creating an Autolaunched Flow (No Trigger) to handle the logic for moving file or folder to the Archived location. Follow the detailed instructions below to configure the required input parameters: - After Created a Autolaunched (No-trigger) flow create a input variable called recordId to get a record id from the lead record page - Then create a resource variable to get the selected resource from the CloudFiles Widget. ### Create Flow Variables To pass selected resource (file/folder) and the current record ID to the flow, create the following two variables - - resource: - Type - Variable - Data Type - Apex Defined - Apex Class - clds__Resource - Allow Multiple Values (Collection) - False - Available for Input - True - recordId: - Type - Variable - Data Type - Text - Allow Multiple Values (Collection) - False - Available for Input - True The GIF below provides a visual understanding of this step - ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/09.gif) ### 2 - Get details of the Lead folder We will use Get Connected Folder Apex action to retrieve the details of the folder connected to the current Lead record. Once you add the action to your Flow, it will prompt you to provide a single input parameter: - ParentId – This is the Salesforce Record ID whose connected folder needs to be fetched. In this case, use the {!recordId} variable (which we configured as Available for Input) to pass the current Lead's Record ID into the action. We will use this folder information in the next step to move the respective file or folder into the appropriate folder under the Archived location. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/10.gif) ### 3 – Get Lead Folder Details in the Archived Location We will use Get Resource Details apex action to retrieve the details of the Lead folder that resides inside the Archived location in your external storage. Once you include this into your flow action, it will ask you to fill in these parameters: 1 - Drive Id - This is required for Google Drive and SharePoint libraries. - Input the Drive ID where the Archived folders are stored. - You can get the Drive ID from the CloudFiles Content Library tab inside the CloudFiles app in Salesforce. Alternatively, you can use the Drive ID output from another action earlier in the Flow. In this tutorial, since we already retrieved the Lead folder details in Step 2, we can reuse the output from that step. Use: Get_Lead_Folder > Drive Id 2 - Library This is the desired Cloud storage where you wish to create the folder. Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, cloudfiles (AWS S3). In our case, the folders reside inside SharePoint, so we will set the input value to: 'sharepoint'. 3 - Resource Id This parameter is conditionally optional. - If you don't know the Resource Path, you should provide the Resource ID. - However, in this tutorial, we do know the path to the Lead folder inside the Archived location, so this can be left blank. 4 - Resource Path - This is also a conditionally optional parameter but required in our case since we don't have the Resource ID. - Provide the full path to the Lead folder inside the Archived directory. Our input will be a formula variable named {!folderPath}, which contains the following string-type formula: /SF Documents/_Archived/& {!Get_Lead_Folder.name} ```text Example input: '/SF Documents/_Archived/CloudFiles India Private Limited' ``` ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/11.png) 5 - Resource Type This is an optional parameter. Since we are retrieving a folder, set the value to: 'folder'. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/12.gif) ### 4 – Collect the Lead Folder ID Residing Inside the Archived Location In this step, we will store the ID of the Lead folder that resides inside the Archived location of your external storage. This folder ID will be saved into a String-type variable called {!FolderId}, which will be used in the following steps to move files or folders into the archived structure. Handling Two Scenarios: Scenario 1: Folder Already Exists in the Archived Location If the Get Resource Details action from Step 3 successfully finds the Lead folder in the Archived location: - The folder's metadata (including its ID) will be returned. - Use an Assignment element to store the folder's Id from the action output ({!Get_Archived_Lead_Folder_Details.id}) into the {!FolderId} variable. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/13.png) Scenario 2: Folder Does NOT Exist If the folder does not exist in the Archived location: - The Get Resource Details action will throw an error. - Handle this with a Fault Path, where you'll: - Use the Create Folder apex action to dynamically create a new folder using the Lead's name. - Place the new folder under your desired archived location. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/14.gif) After creation: - Capture the newly created folder's ID from the Create Folder action's output. - Assign it to the same {!FolderId} variable, so you can maintain consistent logic across the Flow. - Connect the fault path back to the main flow by linking it to the next logical element—ensuring that both success and error paths lead to the same downstream steps. This step ensures that regardless of whether the Lead folder already exists in the Archived location or needs to be created, you'll always have a valid folder ID ({!FolderId}) to use in the next action. Refer to the Image below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/15.png) ### 5 – Move the selected resources to Archived Loaction In this step, we will configure the logic to move a file or folder to the Archived location using the Move Resource flow action, triggered by clicking the button next to the respective resource. Move Resource – Apex Action Configuration: 1 - Library This is the target cloud storage provider where the resource should be moved. Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, cloudfiles (AWS S3). In our case, we can dynamically input this value from the resource variable itself using: {!resource.library}. 2 - Drive Id - This is required for Google Drive and SharePoint libraries. - Input the Drive ID where the selected resources are stored. In this tutorial, since we already have access to the resource variable provided as input from the widget, we can directly use the Drive ID from it{!resource.driveId}. > **Note** — NOTE - If you are using google drive or sharepoint, the Move Resource action can only move those files/folders which exist in the same drive. Simply said, you cannot move files/folders across Drives. 3- Resource Id This is the ID of the resource that needs to be moved. In this tutorial, since we already have access to the selected resource, we can directly use the Resource ID from the variable {!resource.id}. 4 - Resource Type This is the type of the resource which is to be moved, whether it's a 'folder' or 'file'. Valid Inputs for this parameter: - folder if the resource you want to move is a folder. - file if the resource you want to move is a file. In this tutorial, since we already have access to the selected resource, we can directly retrieve the Resource Type from the variable {!resource.type}. 5 - Destination This is the Id of the folder in to which the resource is to be moved. To be more specific, this is the 'Resource Id' of the folder into which the resource (the resource whose Id has been input in the 'Resource Id' parameter) is to be moved. Since we've already collected the Lead's folder ID (which resides inside the Archived location) into the variable {!folderId}, we can directly use this as the destination to move the selected resource into the corresponding Lead folder. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-enable-custom-actions-in-cloudfiles-widget-build-an-archive--sf/16.gif) ### 6 - Save and Activate the flow Once the Flow is activated, you can proceed to create a widget configuration and set up a Resource Action button within the CloudFiles widget. This will allow users to access the configured Resource Action directly from the Lead's record page. Using this button, users can trigger the Flow to move a file or folder into the appropriate Archived location—all directly from within the CloudFiles widget. ## Test it in action To test the complete functionality, follow the steps below: - Create a New Lead Once the Lead is created, the folder structure will be automatically generated by the pre-configured flow responsible for Lead folder creation. - Upload Files to the Lead Folder Using the CloudFiles widget on the Lead record page, upload some test files and folders into the newly created Lead folder. - Select and Archive Unwanted Files or Folders Suppose you've reached a certain stage in the Lead lifecycle and no longer need some of the uploaded resources. Simply click the Resource Action button beside the unwanted file or folder in the CloudFiles widget to archive it using the custom Resource Action you configured earlier. - Verify the Move in the Widget After triggering the Resource Action, you'll notice that the resource is no longer visible in the CloudFiles widget on the Lead record. This confirms that the move action has taken place successfully. - Confirm Archival in External Storage Now, go to the CloudFiles Document Management App and navigate to the _Archived folder location in your connected external storage (e.g., SharePoint). You will find a new folder named after the Lead, and inside it, all the selected files and folders will be stored—indicating successful archival. > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see any changes, try refreshing the CloudFiles widget a couple of times. Congratulations! You've successfully set up a custom Resource Action button in the CloudFiles widget, allowing users to seamlessly move unwanted Lead files or folders into a centralized Archived folder in your external storage. You've also configured the supporting Flow to trigger this action based on specific business conditions—such as before converting a Lead or after reaching a certain stage—helping keep your Salesforce records clean, organized, and audit-ready. --- # Move Lead folder to Account folder on conversion (Tutorial) https://help.cloudfiles.io/salesforce/move-lead-folder-to-account-folder-on-conversion # Move Lead folder to Account folder on conversion Guide to automatically move a Lead's folder into its converted Account's folder in external storage using CloudFiles flow actions in Salesforce. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, we'll guide you on moving Lead folders into their respective Account folders in any external storage automatically on conversion of Lead. We will use CloudFiles flow actions to create these automated folders. ## What to Expect By the end of this tutorial, you can expect to - - Have an Account folder created in your external storage for every new Account. - Have a Lead folder created in your external storage for every new Lead. - Automatically Move Lead folders into their respective Account folders on conversion of Lead. The GIF below shows the expected output. ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/01.gif) ## Pre-requisites ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation guide to know more. ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/02.png) ### Connect your Cloud Storage to Salesforce using CloudFiles All automations in CloudFiles are activated through Salesforce Flow Builder, utilizing account-wide authentication for external storage libraries through a service (admin) user. To connect your service user, access the setup, click on the external storage of choice and log into your account. For detailed steps, refer to the GIF below for a clearer understanding. ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/03.gif) ### Add CloudFiles Widget to Account and Lead record pages Add the CloudFiles widget to Account and Lead record pages in order to view the files and folders within salesforce. Follow the steps below - - Go to any Account record and click “Edit Page” Button. - Lightning builder for this page will open. Insert a new tab and drag and drop the "CloudFiles" widget. - Save and exit the builder. Refresh the Salesforce record page. The widget should now show up. - Follow the above steps and add CloudFiles widget to the Lead record page as well. Refer to the GIF below to get a visual understanding of this step. The inserted widget may show a blank screen but you don't need to worry about it. Move on to the next step. ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/04.gif) ### Automatic folder creation for Accounts and Leads For this tutorial, We require automated folders to be created upon the creation of both new Account and new Lead. To accomplish this, we will create two distinct record-triggered flows using CloudFiles actions. For a comprehensive guide on the process of creating automated folders, please refer to our tutorial at Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects. This is how the flow would look like - ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/05.png) ## Flow - Move Lead folder into Account folder on Lead conversion In this section, we will create a flow to automatically move the previously created Lead folder into the corresponding Account folder upon lead conversion. Firstly, we'll configure a Record Triggered Flow to initiate the automation process. Then, we'll retrieve the details of the Lead folder. To ensure that the Account folder has been created, we'll implement a pause. Subsequently, we'll gather details of the Account folder. Finally, using CloudFiles action, we'll execute the movement of the Lead folder into the associated Account folder.This is how the final flow looks like - ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/06.png) The details of the flow has been given below - ### 1 - Configure a Record Triggered Flow We will start by creating a record-triggered flow on the 'Lead' Object. Follow the detailed instructions below for the input parameters - - In the 'Configure Start' window, select Lead as the object - Configure trigger of the flow when a A record is updated - For setting the Entry Conditions, follow the following steps - Condition Requirements -> select All Conditions Are Met (AND) - Define the condition as Field-> IsConverted, Operator-> Equals, Value -> TRUE - For When to Run the Flow for Updated Records, select Only when a record is updated to meet the condition requirements.We have selected this option since we want the Flow to run only when the triggered record is changed from not meeting the entry conditions to meeting the entry conditions. Above conditions ensure that the lead folder moves to account folder only once when the conditions for the lead's conversion are met for the first time. - For Optimize the Flow For, select Actions and Related Records - Check the Include a Run Asynchronously path checkbox. The configuration looks like below - ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/07.png) The GIF below provides a visual understanding of this step - ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/08.gif) > **NOTE** — NOTE - In Record-triggered flows, make sure you run CloudFiles actions only in 'Run Asynchronously' path. ### 2 - Get details of the Lead folder We will use Get Connected Folder Apex action to retrieve the details of triggering record's corresponding Lead folder. Once you add the action, it will ask you to fill in a single parameter. ParentId - Input the Salesforce Record Id whose connected folder is to be fetched. Here, input the flow triggering Lead record Id as 'Record' > 'Lead ID' i.e. {!$Record.Id}Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/09.gif) In case the Salesforce Record, whose Id is input into the action has got a single folder attached to it, then Get Connected Folder will give the attached folder details as output. Here, by inputting the Record Id of the Lead that triggered the flow, the action yields the details of he folder attached to the Lead record. We will use this details in the next step to move the lead folder to account folder. ### 3 - Pause to ensure Account Folder creation To ensure seamless execution and prevent flow errors, a delay element is introduced into the flow. This delay accommodates potential delays in the execution of the pre-requisite flow responsible for creating and attaching the Account folder, which occurs concurrently with the conversion of the Lead record. By incorporating this delay, we mitigate the risk of fetching incomplete or erroneous Account folder details before the completion of step -1. Add a 'CloudFiles: Delay' Apex action into the flow, positioned after the 'Get Lead Folder' element and before retrieving details of the corresponding Account folder in the subsequent action. The 'CloudFiles: Delay' Apex action functions as a 'pause for a given time' element before the flow proceeds to execute the next action or element. Once you add the 'CloudFiles: Delay' Apex action, it will ask you to fill in a single parameter -Delay(milli seconds) - The amount of time the pause acts for in milliseconds.Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/10.gif) > **NOTE** — NOTE - Avoid setting a long pause duration as it may result in flow timeouts and errors. For this specific flow, a delay of 10,000-15,000 milliseconds should suffice. ### 4 - Get details of Account folder We will again use Get Connected Folder Apex action, this time to fetch the details of triggering record's corresponding Account folder. Once you add the action, it will ask you to fill in a single parameter. ParentId - Input the Salesforce Record Id whose connected folder is to be fetched. Here, input the flow triggering Lead record's converted Account Id as 'Record' > 'Converted Account ID' i.e. {!$Record.ConvertedAccountId}Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/11.gif) Here, as we input the converted Account Record Id of the Lead that triggered the flow, the action outputs the details of the folder attached to the Account record. In the next steps, we will see how this is useful. ### 5 - Move Lead folder into Account folder Move Resource action can be used in a flow to relocate a Resource (file or folder) in any Cloud storage from one location to other.Once we have fetched the details of Lead folder and account folder in our previous steps, we will add a Move Resource Apex action to move the fetched Lead folder from step 2 into the fetched Account folder from step 4. Once you add the action, it will ask you to fill in these parameters:1 - LibraryThis is the desired Cloud storage where you wish to create the folder. Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, cloudfiles (AWS S3)2 - Drive IdThis is required only for Google Drive & SharePoint libraries. Input the Drive Id in which the folders are stored. For this you can simply enter the 'Drive Id' in which the Account folders and Lead folders are stored. You can get this parameter by accessing your Cloud storage from within Salesforce , using CloudFiles app's 'Content Library' tab . OR You can even use the 'Drive Id' output by other Actions in the flow.In this tutorial, in step 2 and step 4 as we already added actions to output the Lead folder details and it's Account folder details, we can use any of these action's output to input this parameter. As 'Get Account Folder' > 'Drive Id' or 'Get Lead Folder' > 'Drive Id' > **NOTE** — NOTE - If you are using google drive or sharepoint, the Move Resource action can only move those files/folders which exist in the same drive. Simply said, you cannot move files/folders across Drives. 3- Resource IdThis the Id of the resource which is to be moved. For this you can use the outputs of other Actions in the flow. In this tutorial, as we want to move the Lead folder (this folder is the resource to be moved), input the 'Resource Id' output by the action you have added in step 2 as 'Get Lead Folder' > 'Resource Id'.4 - Resource TypeThis is the type of the resource which is to be moved, whether it's a 'folder' or 'file'. Valid Inputs for this parameter: - folder if the resource you want to move is a folder. - file if the resource you want to move is a file. In this tutorial, since we are moving a folder (Lead folder), input folder.5 - Destination - This is the Id of the folder in to which the resource is to be moved. To be more specific, this is the 'Resource Id' of the folder into which the resource (the resource whose Id has been input in the 'Resource Id' parameter) is to be moved. You can get this parameter by accessing your Cloud storage from within Salesforce , using CloudFiles app's 'Content Library' tab . OR You can even use the outputs of other Actions in the flow.In this tutorial, as as we want to move the Lead folder into Account folder (destination), input the 'Resource Id' from the output of action added in step 4 as 'Get Account Folder' > 'Resource Id'.Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-move-lead-folder-to-account-folder-on-conversion-sf/12.gif) ### 6 - Save and Activate the flow Once the Flow is activated, whenever a Lead is converted into a new Account or existing account , this flow should automatically move the triggering Lead record's Lead folder into it's converted Account folder. ## Test the Flows in action Now that everything is setup, lets test our flows. Follow the steps below to see this automation in action. - Create a new Lead. This should create a Lead folder visible in the 'CloudFiles' widget on Lead record page. - Click 'Convert' on the Lead record. - In the 'Convert Lead' form, For Account, choose 'Create New' or 'Choose Existing' (If you are choosing this make sure you have a folder connected to Account record). - Once converted, check the Account folder visible in the 'CloudFiles' widget on Account record page. - You will find the Lead Folder moved into the Account folder. > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see any changes, try refreshing the CloudFiles widget a couple of times. Congratulations! You've successfully configured flows to automatically move Lead folders into their respective Account folders on conversion. --- # Renaming a folder in SharePoint when the Record is updated https://help.cloudfiles.io/salesforce/renaming-a-folder-in-sharepoint-when-the-record-is-updated # Renaming a folder in SharePoint when the Record is updated Learn how to use CloudFiles flow actions to automatically rename a SharePoint Account folder in Salesforce whenever the linked Account's name changes. > Kind: Tutorial · Updated: Jul 4, 2026 In this guide, we'll show you how to rename an Account folder in SharePoint linked to an Account record. We'll use CloudFiles flow actions to rename SharePoint Account folders automatically when the Account name changes. ## What to Expect By the end of this tutorial, you can expect to - - Have an Account folder created in SharePoint for every new Account. - Rename SharePoint Account folders automatically when the Account name changes. The GIF below shows the expected output. ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/01.gif) ## Pre-requisites ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation guide to know more. ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/02.png) ### Connect your Cloud Storage to Salesforce using CloudFiles All automations in CloudFiles are activated through Salesforce Flow Builder, utilizing account-wide authentication for external storage libraries through a service (admin) user. To connect your service user, access the setup, click on the external storage of choice and log into your account. For detailed steps, refer to the GIF below for a clearer understanding. ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/03.gif) ### Add CloudFiles Widget to Account page Add the CloudFiles widget to Account page in order to view the files and folders within salesforce. Follow the steps below - - Go to any Account record and click “Edit Page” Button. - Lightning builder for this page will open. Insert a new tab and drag and drop the "CloudFiles" widget. - Save and exit the builder. Refresh the Salesforce record page. The widget should now show up. - Follow the above steps and add CloudFiles widget to the Lead record page as well. Refer to the GIF below to get a visual understanding of this step. The inserted widget may show a blank screen but you don't need to worry about it. Move on to the next step. ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/04.gif) ### Automatic folder creation for Accounts For this tutorial, We require automated folders to be created upon the creation of new Account. To accomplish this, we will create a record-triggered flow using CloudFiles actions. For a comprehensive guide on the process of creating automated folders, please refer to our tutorial at Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects. This is how the flow would look like - ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/05.png) ## Flow - Account Folder Renaming on Account Name Change In this section, we will create a flow to automatically rename the previously created and attached Account folder into the changed name. Firstly, we'll configure a Record Triggered Flow to initiate the automation process whenever an update is made to the Account name. Then, we'll retrieve the details of the Account folder. Finally, using CloudFiles action, we'll update the name of the folder into the new Account name. This is how the final flow looks like - ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/06.png) The details of the flow has been given below - ### 1 - Configure a Record Triggered Flow We will start by creating a record-triggered flow on the 'Account' Object. Follow the detailed instructions below for the input parameters - - In the 'Configure Start' window, select Account as the object - Configure trigger of the flow when a A record is updated - For setting the Entry Conditions, follow the following steps - Condition Requirements -> select All Conditions Are Met (AND) - Define the condition as Field-> Name, Operator-> Is Changed, Value -> TRUE - For When to Run the Flow for Updated Records, select Every time a record is updated and meets the condition requirements We have selected this option since we want the Flow to run everytime when the triggered record's name is changed. - For Optimize the Flow For, select Actions and Related Records - Check the Include a Run Asynchronously path checkbox. The configuration looks like below - ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/07.png) The GIF below provides a visual understanding of this step - ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/08.gif) ### 2 - Get details of the Account folder We will use Get Connected Folder Apex action to retrieve the details of triggering record's corresponding Account folder. Once you add the action, it will ask you to fill in a single parameter. ParentId - Input the Salesforce Record Id whose connected folder is to be fetched. Here, input the flow triggering Account record Id as 'Record' > 'Account ID' i.e. {!$Record.Id} Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/09.gif) In case the Salesforce Record, whose Id is input into the action has got a single folder attached to it, then Get Connected Folder will give the attached folder details as output. Here, by inputting the Record Id of the Lead that triggered the flow, the action yields the details of he folder attached to the Lead record. We will use these details in the next step to move the lead folder to account folder. ### 3 - Check Account folder connection We will add a decision element to check whether there is any folder connected to the account record or not. This will be simple null check over the outputs the Get Connected Folder action used in previous step. - Add a decision element with one configured oucome and a default outcome. - Configure the first outcome i.e. in case of no folder connected to the account record. - Enter a Label for the outcome. - Condition Requirements to execute -> select All Conditions Are Met (AND) - Define the condition as Resource-> Outputs from Get_Account_Folder > id, Operator-> Is Null, Value -> TRUE - When to Execute Outcome, select If the condition requirements are met We have selected this option since we want the Flow to run everytime when the triggered record's name is changed. - Enter a Label for the Default outcome. This path shall execute the upcoming actions. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/10.gif) ### 4 - Create a CloudFiles Resource Variable For execution of upcoming actions, we will have to create a CloudFiles Resource Variable. - Create a new flow resource: - Resource Type -> Variable - Data Type -> Apex-Defined - Apex Class -> cldfs__Resource - Allow multiple values (collection)-> Unchecked Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/11.gif) ### 5 - Assign the Account Folder to CloudFiles Resource Variable In the default outcome path, we will have to assign the Account Folder details output by action in step 2 to the created CloudFiles Resource Variable of step 4. For this: - Add an Assignment element in the default outcome path. - Map the Variable Values as: - Cldfs_Resource > driveId -> Outputs from Get_Account_Folder > driveId - Cldfs_Resource > id -> Outputs from Get_Account_Folder > id - Cldfs_Resource > library -> Outputs from Get_Account_Folder > library - Cldfs_Resource > path -> Outputs from Get_Account_Folder > path - Cldfs_Resource > type -> Outputs from Get_Account_Folder > type Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/12.gif) ### 6 - Update Name of the Account Folder We will use Set Resource Property Apex action to update the name property (Property API Name : name) of the Account folder. Once you add the action, it will ask you to fill in few parameters. - Enter a Label for the Set Resource Property Action. - Set Resource -> Cldfs_Resource (the variable used in the steps 4,5) - Set only one property as: Name -> name== Value -> {!$Record.Name} Refer to the GIF below to get a visual understanding of this step. ### 7 - Save and Activate the flow Once the Flow is activated, whenever an Account's name is changed , this flow should automatically update the Account record connected Account folder name. ![](https://media.help.cloudfiles.io/tut-renaming-a-folder-in-sharepoint-when-the-record-is-updated-sf/13.gif) ## Test the Flows in action Now that everything is setup, lets test our flows. Follow the steps below to see this automation in action. - Create a new Account. This should create a Account folder (Folder name = Account Name) visible in the 'CloudFiles' widget on Account record page. - Now change the Account name. - Refresh the widget. You will find that the SharePoint Account folder's name is automatically changed to the new Account name. > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see any changes, try refreshing the CloudFiles widget a couple of times. Congratulations! You've successfully configured flows to Rename SharePoint Account folders automatically when the Account name changes. --- # Setting Up a Custom List Action in the CloudFiles Widget https://help.cloudfiles.io/salesforce/setting-up-a-custom-list-action-in-the-cloudfiles-widget # Setting Up a Custom List Action in the CloudFiles Widget Learn how to set up a Custom List Action (e.g., Bulk Delete) in the CloudFiles widget that links to a Salesforce Flow, allowing users to permanently delete selected files or folders from connected external storage directly from a Salesforce record page. > Kind: Tutorial · Updated: Jul 4, 2026 Custom List Actions in the CloudFiles widget let you create clickable action buttons that appear when a user selects one or more files or folders within the widget on a Salesforce record page. These buttons are linked directly to Salesforce Flows, allowing you to trigger powerful, customized automation —without leaving the record view. In this tutorial, we’ll walk through creating one such action called “Bulk Delete”. You’ll set it up so that when users select multiple files or folders in the CloudFiles widget and click the Bulk Delete button, those items will be permanently removed from your connected external storage (e.g., SharePoint, Google Drive) and disappear from the Salesforce record page widget. By the end of this guide, you’ll have a working Custom List Action that you can configure yourself—ready to streamline file management, reduce clutter, and give your users a one-click way to keep Salesforce clean and organized. ## What to Expect By the end of this tutorial, you will be able to: - Automatically generate a main folder with custom sub-folders in your external storage whenever a new Account is created in Salesforce, and access these folders through the CloudFiles widget on the corresponding record. - Create and configure a Custom List Action (e.g., Bulk Delete) that appears in the CloudFiles widget when users select one or more files or folders on a Salesforce record page. - Use this button to permanently delete selected files or folders from your connected external storage (e.g., SharePoint, Google Drive), directly from Salesforce. The GIF below illustrates the expected outcome once everything is set up. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/01.gif) ## Pre-requisites Before you start with the set-up, please ensure these steps are completed. ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation guide to know more. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/02.png) ### Connect your Cloud Storage to Salesforce using CloudFiles All automations in CloudFiles are activated through Salesforce Flow Builder, utilizing account-wide authentication for external storage libraries through a service (admin) user. To connect your service user, access the setup, click on the external storage of choice and log into your account. For detailed steps, refer to the GIF below for a clearer understanding. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/03.gif) ### Add CloudFiles Widget to Account record page Add the CloudFiles widget to Account record page in order to view the files and folders within salesforce. Follow the steps below - - Go to any Account record and click “Edit Page” Button. - Lightning builder for this page will open. Insert a new tab and drag and drop the "CloudFiles" widget. - Save and exit the builder. Refresh the Salesforce record page. The widget should now show up. Refer to the GIF below to get a visual understanding of this step. The inserted widget may show a blank screen but you don't need to worry about it. Move on to the next step. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/04.gif) ### Automatic folder creation for Accounts For this tutorial, We require automated folders to be created upon the creation of new Account. To accomplish this, we will create two distinct record-triggered flows using CloudFiles actions. For a comprehensive guide on the process of creating automated folders, please refer to our tutorial at Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects This is how the flow would look like - ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/05.png) ## Configure the CloudFiles Widget to Add a Custom List Action Button and Link It to the Flow In this section, we’ll walk through how to configure the CloudFiles Widget to add a custom List Action button and link it to the Flow we are going to create in the next steps. You’ll learn how to: - Set up the List Action within the widget configuration. - Link the action to your Screen Flow with the appropriate input variables. Once the configuration is complete, copy the generated Widget Configuration ID and paste it into the CloudFiles widget settings on the Account record page in Salesforce. This step ensures that the correct Resource Action button appears in the widget, allowing users to trigger the delete functionality. ### Setting Up Widget Flow Actions in CloudFiles Widget Follow these steps to configure Resource Actions in the CloudFiles widget - Step 1: Open Widget Configuration - Navigate to the CloudFiles Document Management App. - Open the "Widget Configuration" page. Step 2: Locate List Actions Section Scroll to the bottom of the page, where you'll find the List Actions section. Refer to the image below for a visual understanding - ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/06.png) Step 3: Specify Attributes for Actions For each List Action, provide the following details: - Label – This is the name that will appear on the widget button (e.g., Bulk Delete). - Flow URL – The URL of the Flow you want to trigger, including input variables. - Flow Type – Choose the type of Flow from the dropdown. For this tutorial, select: Screen Flow ```text flow/CloudFiles_Mass_Delete_Resources?resources={!resources}&recordId={!recordId} ``` In this example: - {!resources} refers to the files or folders selected by the user in the CloudFiles widget at the time of clicking the defined Custom List Action button. - {!recordId} is the Salesforce record (Account) from which the action is being triggered. Step 4: Save and Link the Widget - After entering all configuration values, click Save. - Copy the generated Widget Configuration ID. - Navigate to the Account record page in Salesforce and paste this ID into the CloudFiles widget configuration panel. This step enables the List Action button to appear within the widget, allowing users to permanently delete the selected file or folder with just a click. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/07.png) ## Flow – Delete Unwanted Resources Using the CloudFiles Custom List Action In this section, we’ll create a Custom List Action – driven Screen Flow to permanently delete selected files or folders from your connected external storage when triggered by the user. This is especially useful for cleanup operations—for example, removing outdated files from an Account after a project is completed. We’ll configure a Screen Flow that launches when the user clicks the Custom List Action button after selecting one or more files or folders in the CloudFiles widget. The Flow will: - Permanently remove the selected resources from your connected external storage (e.g., SharePoint, Google Drive). - Immediately update the CloudFiles widget so the deleted files or folders no longer appear on the Salesforce record page. - Ensure secure deletion while keeping your file structure clutter-free. Once the Flow is activated, you can proceed to configure the widget and link the Custom List Action. This will allow users to access the Bulk Delete function directly from the CloudFiles widget on the Salesforce record page. By using this button, users can delete unwanted files or folders in bulk with confirmation, simplifying file management and ensuring that only relevant, up-to-date resources remain accessible. This is how the final flow looks like - ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/08.png) The details of the flow has been given below - ### 1 - Configure a Screen Flow We’ll begin by creating a Screen Flow to handle the logic for bulk deleting files or folders from your connected external storage. Follow the steps below to set up the required input parameters: - Create a new Screen Flow in Salesforce to manage the bulk deletion process. - Add an input variable called recordId to capture the Salesforce record ID (e.g., Account ) from which the action is being triggered via the CloudFiles widget. - Create another input variable called resources variable to get the selected resource from the CloudFiles Widget. ### Create Flow Variables To pass selected resource (file/folder) and the current record ID to the flow, create the following two variables - - resources: - Type - Variable - Data Type - Apex Defined - Apex Class - clds__Resource - Allow Multiple Values (Collection) - True - Available for Input - True - recordId: - Type - Variable - Data Type - Text - Allow Multiple Values (Collection) - False - Available for Input - True The GIF below provides a visual understanding of this step - ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/09.gif) ### 2 - Get Connected Folder We will use Get Connected Folder Apex action to retrieve the details of the folder connected to the current Account record. Once you add the action to your Flow, it will prompt you to provide a single input parameter: - ParentId – This is the Salesforce Record ID whose connected folder needs to be fetched. In this case, use the {!recordId} variable (which we configured as Available for Input) to pass the current Account's Record ID into the action. We’ll use the folder information retrieved here in the next step to locate and delete the selected file(s) or folder(s) from the appropriate location in your external storage. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/10.gif) ### 3 – Collect the Selected Resource ID's to Delete In this step, the resources variable will already contain details of all the files or folders the user has selected in the CloudFiles widget. To prepare them for deletion, go through each item in this list and pick out just the ID for that file or folder. As you do this, add each ID to another variable, for example ResourceIds. You can gather these IDs using an assignment step called Populate ResourceIds Variable, so by the end you have a single list containing only the IDs of the selected items, ready for the deletion step. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/11.gif) ### 4 – Delete the selected Resources In this step, we’ll configure the Delete Resource Apex action to remove the selected resources (files & folders) from your connected external storage by passing the required input values. Delete Resource – Apex Action Configuration: - Library This is the target cloud storage provider where the resource should be deleted. Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, cloudfiles (AWS S3). In our case, we can dynamically input this value from the Get Connected Folder action itself using: {!Get_Connected_Folder.library}. - Drive ID This is required for Google Drive and SharePoint libraries. Enter the Drive ID where the selected resources are stored. In this tutorial, since we already have access to the Get Connected Folder action, we can directly use the Drive ID from it: {!Get_Connected_Folder.driveId} - Resource ID We can skip this field because either Resource ID or Resource IDs is required—not both. In our case, we are deleting a list of resources, so we’ll toggle off Resource ID and use Resource IDs instead. - Resource IDs In this field, enter the list of IDs for the files or folders you want to delete from your external storage. Since we have already collected the selected resource IDs into a list variable named ResourceIds in the earlier step, simply pass that variable here. This will ensure that all the selected items are deleted in one go when the flow runs. - Resource Type In our case, this parameter is not required because we are performing a bulk deletion of resources that may include both files and folders in a single operation. For bulk deletion, this field is optional, so you can simply toggle it off. Once all these fields are filled in correctly, the action will delete the selected items both from the external storage and from the CloudFiles widget on the Salesforce record page. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/12.gif) ### 5 - Save and Activate the flow Once you’ve finished configuring all elements, save your Flow and then activate it. After activation, the Flow can be triggered directly from the Custom List Action button in the CloudFiles widget. This button was configured earlier in the CloudFiles Widget Configuration, and its Configuration ID was added to the record page in edit mode. When users select one or more files or folders and click this button, the Flow will run and permanently delete the selected resources from your connected external storage. The same resources will also be removed from the CloudFiles widget on the Salesforce record page. ## Test it in action To verify that everything is working as expected, follow these steps: - Create a New Account Once the Account is created, the folder structure will be automatically generated by the pre-configured flow responsible for Account folder creation. - Upload Files to the Account Folder Using the CloudFiles widget on the Account record page, upload some test files and folders into the newly created Account folder. - Select and Delete Unwanted Files or Folders When you no longer need certain files or folders, select them in the CloudFiles widget and click the Custom List Action button (Bulk Delete) you configured earlier. - Verify Deletion in the Widget After triggering the action, the deleted resources will no longer appear in the CloudFiles widget on the Account record page—confirming that the deletion was successful. - Confirm Deletion in External Storage Open your connected external storage (e.g., SharePoint, Google Drive) and navigate to the same location where the files were stored. The deleted files or folders should no longer be present. > Flow execution and folder creation may take some time (a few seconds to a minute). If you don't see any changes, try refreshing the CloudFiles widget a couple of times. Congratulations! You’ve successfully set up a Custom List Action button in the CloudFiles widget, allowing users to easily bulk delete unwanted Account files or folders directly from Salesforce. You’ve also configured the supporting Screen Flow to handle the deletion process—removing selected items from both your connected external storage and the CloudFiles widget—helping keep your Salesforce records clean, organized, and up to date. This setup streamlines file management, reduces clutter, and ensures that only relevant, current files remain visible to your team—improving efficiency and maintaining a well-structured workspace. --- # Setting Up a Custom Resource Action in the CloudFiles Widget https://help.cloudfiles.io/salesforce/setting-up-a-custom-resource-action-in-the-cloudfiles-widget # Setting Up a Custom Resource Action in the CloudFiles Widget Learn how to set up a Custom Resource Action (e.g., Internal Sharing Link) in the CloudFiles widget that links to a Salesforce Screen Flow, letting users fetch a single selected file or folder's external URL — its Google Drive sharing link — and display it directly on the Salesforce record page. > Kind: Tutorial · Updated: Jul 31, 2026 Custom resource actions in the CloudFiles widget let you create clickable action buttons that appear when a user selects a single file or folder within the widget on a Salesforce record page. These buttons are linked directly to Salesforce flows — a resource action always passes exactly one file/folder. In this tutorial, we'll walk through creating a resource action called “Internal Sharing Link.” Today, if someone wants to share a Google Drive file or folder with a colleague — e.g., pasting a link into an email or Teams message — they have to leave Salesforce, open Google Drive directly, re-find the same file they were already looking at in the CloudFiles widget, and use Google Drive's native “Copy link” feature. That's a full context switch just to copy a link for something they're already looking at. We'll set up a resource action that lets users grab that link from inside the CloudFiles widget itself: select a file or folder, click “Internal Sharing Link,” and a screen flow fetches the item's external URL — its Google Drive sharing link — and displays it right there, ready to copy and paste. > This is the file or folder's external URL — a permissioned sharing link, the kind Google Drive generates for people who already have access within your organization. It's a shortcut to something a permissioned colleague could already reach directly in Google Drive. By the end of this guide, you'll have a working custom resource action you can configure yourself — ready to save your users a context switch every time they need to share a file link. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-resource-action-in-the-cloudfiles-widget-sf/01.gif) ## What to Expect By the end of this tutorial, you will be able to: - Add a custom resource action button (e.g., “Internal Sharing Link”) that appears in the CloudFiles widget when a user selects one file or folder on a Salesforce record page. - Use that button to fetch the selected resource's external URL (its Google Drive sharing link — the File/Folder's URL from the external storage) and display it directly in the widget — without anyone needing to open Google Drive separately. ## Resource Action vs. List Action Before starting, it's worth being clear on the distinction: - List action — appears when a user selects one or more items in the widget; the flow receives a collection variable (resources). - Resource action — appears when a user selects a single item in the widget; the flow receives a single, non-collection variable (resource). Use a resource action whenever your automation logic only makes sense against one file at a time — such as looking up a single file's metadata or, as in this tutorial, its sharing URL. ## Pre-requisites Before you start with the set up, please ensure these steps are completed. ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation guide to know more. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/02.png) ### Connect your Cloud Storage to Salesforce using CloudFiles All automations in CloudFiles are activated through Salesforce Flow Builder, utilizing account-wide authentication for external storage libraries through a service (admin) user. To connect your service user, access the setup, click on the external storage of choice and log into your account. For detailed steps, refer to the GIF below for a clearer understanding. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-resource-action-in-the-cloudfiles-widget-sf/03.png) ### Add CloudFiles Widget to Account record page Add the CloudFiles widget to Account record page in order to view the files and folders within salesforce. Follow the steps below - - Go to any Account record and click “Edit Page” Button. - Lightning builder for this page will open. Insert a new tab and drag and drop the “CloudFiles” widget. - Save and exit the builder. Refresh the Salesforce record page. The widget should now show up. Refer to the GIF below to get a visual understanding of this step. The inserted widget may show a blank screen but you don't need to worry about it. Move on to the next step. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/04.gif) ### Automatic folder creation for Accounts For this tutorial, We require automated folders to be created upon the creation of new Account. To accomplish this, we will create two distinct record-triggered flows using CloudFiles actions. For a comprehensive guide on the process of creating automated folders, please refer to our tutorial at Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects This is how the flow would look like - ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-list-action-in-the-cloudfiles-widget-sf/05.png) ## Configure the CloudFiles Widget to Add a Custom Resource Action Button and Link It to the Flow In this section, we'll walk through how to configure the CloudFiles widget to add a custom resource action button and link it to the flow we're going to build in the next step. Step 1: Open Widget Configuration Navigate to the CloudFiles Document Management app and open the “Widget Configuration” page. Step 2: Locate the Resource Actions Section Scroll to the bottom of the page, past List View Controls, where you'll find the Resource Actions section (“Define custom actions in the widget at the resource level”), with List Actions just below it. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-resource-action-in-the-cloudfiles-widget-sf/06.png) Step 3: Specify Attributes for the Action For the resource action, provide the following details: - Label — the name that will appear on the widget button. For this tutorial: Internal Sharing Link. - Flow URL — the URL of the flow to trigger, including input variables. - Flow Type — choose the type of flow from the dropdown. For this tutorial, select Screen Flow. Flow URL used in this tutorial: ```text /flow/Get_Internal_Sharing_Url?resource={!resource}&recordId={!recordId} ``` > Note the singular {!resource} here — for a resource action this refers to the single file or folder selected by the user in the CloudFiles widget at the time of clicking the button. {!recordId} is the Salesforce record from which the action is being triggered. (You can name these input variables whatever you like — resource and recordId are just what this tutorial's flow uses.) Step 4: Save and Link the Widget - After entering all configuration values, click Save. - Copy the generated Widget Configuration ID. - Navigate to the Account record page in Salesforce and paste this ID into the CloudFiles widget configuration panel. This step enables the Resource Action button to appear within the widget, allowing users to get the external URL of the selected file or folder with just a click. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-resource-action-in-the-cloudfiles-widget-sf/07.png) ## Flow - Get Internal Sharing Url In this section, we'll create a Custom Resource Action – driven Screen Flow to get the external URL for a file or folder from your connected external storage when triggered by the user. This is especially useful when the user wants to copy this link and send to colleagues via chat or email, without having to switch to the external storage. We'll configure a Screen Flow that launches when the user clicks the Custom Resource Action button on a file/folder in the CloudFiles widget. The Flow will: - Get the external URL from your connected external storage (e.g., Google Drive). - Immediately show a pop-up on the Salesforce record page displaying this link. - Let you copy this link and share it with your team-members. Once the Flow is activated, you can proceed to configure the widget and link the Custom Resource Action. This will allow users to access the Internal Sharing Link function directly from the CloudFiles widget on the Salesforce record page. By using this button, users can copy the link and send it to their colleagues via chat or email, without having to switch to the external storage. This is how the final flow looks like - a Screen Flow with three elements: Get the External URL for the Folder (Apex Action) followed by the Sharing Link screen. ![The Get Internal Sharing Url screen flow, four elements in sequence: Start, Get the External URL for the Folder (Apex Action), Sharing Link (Screen), and End.](https://media.help.cloudfiles.io/tut-setting-up-a-custom-resource-action-in-the-cloudfiles-widget-sf/flow-diagram.png) The details of each element are given below. ### 1. Configure a Screen Flow and Its Input Variables We'll begin by creating a Screen Flow to handle the logic for getting the url of files/folders from your connected external storage. Follow the steps below to set up the required input parameters: - Create a new Screen Flow in Salesforce to manage the logic of getting the external url. - Add an input variable called recordId to capture the Salesforce record ID (e.g., Account ) from which the action is being triggered via the CloudFiles widget. - Create another input variable called resource variable to get the selected resource from the CloudFiles Widget. ### Create Flow Variables To pass selected resource (file/folder) and the current record ID to the flow, create the following two variables - - resource: - Type - Variable - Data Type - Apex Defined - Apex Class - clds__Resource - Allow Multiple Values (Collection) - False - Available for Input - True - recordId: - Type - Variable - Data Type - Text - Allow Multiple Values (Collection) - False - Available for Input - True > This is the key structural difference from a custom list action: resource is a single, non-collection variable (not a collection like resources), because a resource action only ever passes one selected item. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-resource-action-in-the-cloudfiles-widget-sf/09.png) ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-resource-action-in-the-cloudfiles-widget-sf/10.png) ### 2. Get the External URL for the Folder In this step, we'll add the apex action that fetches the resource's external URL — labeled Get the Internal Link for the Folder in this flow (feel free to name yours “Get the External URL for the Folder” instead). It uses the CloudFiles Get Resource Property flow action to fetch the selected resource's external URL (externalUrl), by passing the required input values. Get Resource Property – Apex Action Configuration Property Name This is the API name of the property whose value you want to fetch. Since we want the resource's external URL, we use the standard property name externalUrl — this returns the cloud drive URL of the resource, i.e., its Google Drive (or SharePoint) sharing link. > The externalUrl property is only returned for Google Drive and SharePoint connected storage. It is not available for Azure Blob Storage or Amazon S3 storages, so this resource action won't return an external URL for files or folders stored there. Resource This is the file or folder whose property you want to fetch. In our case, we can dynamically pass in the resource selected by the user in the widget using {!resource} — this is the single item the user picked in the CloudFiles widget, passed straight into the flow. Type (Optional) We can skip this field. It's only needed if you want to explicitly specify the resource's type; since we're passing the resource variable directly, CloudFiles already knows what it's working with. Once these fields are filled in correctly, the action will fetch the resource's external URL and make it available as a text output — named after the action's label, Text from Get the Internal Link for the Folder — ready to be displayed to the user in the next step. ### 3. Display the Link on Screen Add a Screen element called Sharing Link. On this screen, add a Display Text (or similar) component labeled Internal Sharing Link, and set its value to the output from the previous step: ```text {!Get_the_Internal_Link_for_the_Folder} ``` This surfaces the sharing URL directly inside the widget's flow screen, so users can copy it and send it to a colleague via chat or email — without ever needing to open Google Drive themselves. ![](https://media.help.cloudfiles.io/tut-setting-up-a-custom-resource-action-in-the-cloudfiles-widget-sf/14.png) ### 4. Save and Activate the Flow Once you've finished configuring all elements, save your flow and then activate it. After activation, the flow can be triggered directly from the custom resource action button in the CloudFiles widget. This button was configured earlier in the CloudFiles widget configuration, and its configuration ID was added to the record page in Edit mode. When a user selects a single file or folder and clicks this button, the flow will run and display that item's external URL right there in the widget — ready to copy and share with a colleague. ## Test It in Action To verify that everything is working as expected, follow these steps: - Create a New Account Once the Account is created, the folder structure will be automatically generated by the pre-configured flow responsible for Account folder creation. - Upload Files to the Account Folder Using the CloudFiles widget on the Account record page, upload some test files and folders into the newly created Account folder. - Select a file or folder you'd like to share the link for. - Click the custom resource action button (Internal Sharing Link) you configured earlier. - Verify the link appears — a screen will pop up showing the file or folder's external URL (its Google Drive sharing link). - Copy the link and paste it into an email or Teams message, then confirm it opens the correct file or folder directly in Google Drive for a colleague who already has permission to access it. > Flow execution and folder lookups may take a few seconds. If you don't see the link appear right away, try refreshing the CloudFiles widget a couple of times. Congratulations! You've successfully set up a custom resource action button in the CloudFiles widget, allowing users to grab a file or folder's external URL directly from Salesforce. You've also configured the supporting screen flow to handle the lookup — fetching the external URL for exactly the resource selected in the widget, and surfacing it on screen — saving your users a full context switch every time they need to share a file with a colleague. This setup keeps sharing quick and consistent, without exposing any files publicly or requiring anyone to leave Salesforce to go find a link. --- ## Salesforce: Document Generation --- # Document Generation (Document Generation · Salesforce) https://help.cloudfiles.io/salesforce/document-generation # Document Generation CloudFiles Document Generation integrates with Salesforce to simplify document creation using the CloudFiles add-in, the Document Generation Lightning Web Component, and flow actions. Set up, design templates, and generate documents manually and automatically. > Kind: Guide · Updated: Jul 9, 2026 CloudFiles Document Generation integrates with Salesforce to simplify document creation and management. Using the CloudFiles add-in, the CloudFiles Document Generation Lightning Web Component (LWC), and flow actions, users can efficiently generate, customize, and automate documents using Salesforce data. This guide offers a comprehensive walkthrough on setting up CloudFiles Document Generation, designing templates, and generating documents both manually and automatically. Get started with these key sections: - Installation: How to set up CloudFiles Document Generation in your Salesforce instance — installing the package from the Salesforce AppExchange, understanding the included components, and reviewing the technical requirements for compatibility. - Configuration: Set up CloudFiles in Salesforce, connect your account, and manage permissions. Install the CloudFiles add-in for Microsoft Office and link it to Salesforce for creating templates, and manage user roles and licenses. - Template Creation: Create templates for use with CloudFiles Doc Gen. Templates are built using Microsoft Word, Excel, and PowerPoint with the CloudFiles Word add-in — insert merge fields, preview with sample data, and publish the template for use within Salesforce. - Features: The powerful features of CloudFiles Document Generation in Salesforce, including DocuSign integration. > If you're on a paid plan, reach out to the CloudFiles support team for further assistance at support@cloudfiles.io. --- # Installation (Document Generation) https://help.cloudfiles.io/salesforce/installation # Installation The Installation section guides you through setting up CloudFiles Document Generation in your Salesforce org, enabling automated creation and management of business documents. > Kind: Guide · Updated: Jul 4, 2026 The Installation section guides you through setting up CloudFiles Document Generation in your Salesforce org, enabling automated creation and management of business documents. It integrates with Microsoft Word, Excel, and PowerPoint, allowing you to create templates directly within these applications, and supports template-based document generation in .pdf and .docx formats. This section is divided into two key sub-sections - 1. **Installing from the Salesforce AppExchange** — The CloudFiles managed package is available on the Salesforce AppExchange. This subsection covers:Pre-requisites – System Administrator access is required.Step-by-step installation guide – Instructions for finding CloudFiles on AppExchange and approving third-party access.Post-installation steps – Configure your CloudFiles account. 2. **What's In the Package?** — Installing CloudFiles provides access to tools and features for AI-powered document processing. This subsection covers:CloudFiles Lightning App – Available in Salesforce’s App Launcher.Custom Permissions – Manage user access with predefined roles .Flow Actions & Components – Automate document processes using Salesforce Flows, CloudFiles Flow Actions and Platform Events.Apex Support – Extend functionality with custom Apex code. > **Note** — If you're on a paid plan, reach out to the CloudFiles support team for further assistance, at - support@cloudfiles.io --- # Installing from the Salesforce AppExchange (Salesforce: Document Generation) https://help.cloudfiles.io/salesforce/QKC1-installing-from-the-salesforce-appexchange # Installing from the Salesforce AppExchange CloudFiles Document Generation is available to install from the Salesforce AppExchange. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles Document Generation | Create & Manage PDF, Word & more is available to install from the Salesforce AppExchange. ![](https://media.help.cloudfiles.io/dg-installing-from-the-salesforce-appexchange-sf/01.png) > **Prerequisite** — You must have System Administrator credentials to install an application from the AppExchange. ## Installation Steps - Go to the CloudFiles Document Generation | Create & Manage PDF, Word & more listing on the Salesforce App Exchange, and click on "Get It Now". ![](https://media.help.cloudfiles.io/dg-installing-from-the-salesforce-appexchange-sf/02.png) - Log in to the AppExchange. - Specify where you want to install - Click Install in production to install in your production instance. - Click Install in sandbox to install in a sandbox. ![](https://media.help.cloudfiles.io/dg-installing-from-the-salesforce-appexchange-sf/03.gif) - Confirm the Installation Details - Check "I have read and agree to terms and conditions" - Click "Confirm and Install" ![](https://media.help.cloudfiles.io/dg-installing-from-the-salesforce-appexchange-sf/04.gif) - This redirects you to Salesforce login page to continue the installation. - Choose who to install CloudFiles for, Select "Install for Admins Only". ![](https://media.help.cloudfiles.io/dg-installing-from-the-salesforce-appexchange-sf/05.gif) - Don't worry, all your users will be able to access CloudFiles. We select this option to better control the permissions for all users. - Approve Third-Party Access - Check "Yes, grant access to these third-party websites" - Click "Continue" ![](https://media.help.cloudfiles.io/dg-installing-from-the-salesforce-appexchange-sf/06.gif) - Read Why are various third party accesses asked during installation for information. - The App may sometimes take long time to install, click "Done". You will recieve an email after the installation is completed. ![](https://media.help.cloudfiles.io/dg-installing-from-the-salesforce-appexchange-sf/07.gif) > **Post Installation** — After installing, you must finish the steps listed in Configuration based on your business use case. --- # What's In the Package? https://help.cloudfiles.io/salesforce/whats-in-the-package # What's In the Package? An overview of the CloudFiles Document Generation package components, including the Lightning Experience app, Lightning Web Component, Microsoft Add-Ins, permission sets, Flow actions, events, and Apex extensibility. > Kind: Guide · Updated: Jul 4, 2026 When you install the CloudFiles Document Generation | Create & Manage PDF, Word & more you can create templates directly within Microsoft Word, Excel, and PowerPoint to automate document generation. It also integrates with Salesforce Lightning pages, allowing you to generate documents from Salesforce records using predefined templates. ## CloudFiles Lightning Experience App The CloudFiles app is accessible via the App Launcher in Lightning Experience. This app enhances productivity by allowing users to seamlessly switch between apps and includes all admin related pages. ![](https://media.help.cloudfiles.io/dg-whats-in-the-package-sf/01.gif) The Lightning app includes Lightning page tabs of utilities like "Document Generation", "Content Library" and "Settings". You can even append other navigation items to the Lightning app that you find relevant. ![](https://media.help.cloudfiles.io/dg-whats-in-the-package-sf/02.png) Manage the App: Edit and configure the app in App Manager under Lightning Experience Setup. ![](https://media.help.cloudfiles.io/dg-whats-in-the-package-sf/03.gif) ## Lightning Web Component (LWC) The CloudFiles Doc-Gen widget is a Lightning Web Component that integrates into any Salesforce standard or custom Lightning page. It allows users to attach and utilize multiple Doc Gen templates to generate various documents in .docx and .pdf format directly from Salesforce records, enabling template-based document creation. ![](https://media.help.cloudfiles.io/dg-whats-in-the-package-sf/04.gif) ## Microsoft Add-Ins The CloudFiles Add-in integrates with Microsoft Word, Excel, and PowerPoint, enabling users to create and manage templates across various document types. With dynamic fields, templates automatically populate with Salesforce data. Users can efficiently design and generate documents directly within their preferred Microsoft Office applications. ![](https://media.help.cloudfiles.io/dg-whats-in-the-package-sf/05.gif) ## CloudFiles Permission Sets The CloudFiles app includes custom permissions to control access to its features. These permissions are grouped into three predefined permission sets: - CloudFiles Admin User: Full access, including admin-level settings. - CloudFiles Standard User: Full functionality for internal users, excluding admin features. - CloudFiles External User: Suitable for Experience Cloud (community) users. Permission sets are auto-assigned upon installation but can be manually reassigned via Setup > Permission Sets > Manage Assignments. You can also create custom permission sets tailored to your needs. ## Flow Actions and Components The package includes CloudFiles Flow Actions and Screen Flow Components, enabling Process automation through Flow Builder and Dynamic user interfaces with Screen Flows. ![](https://media.help.cloudfiles.io/dg-whats-in-the-package-sf/06.png) ## CloudFiles Events CloudFiles supports event-driven automation with: - Platform Events: Trigger events for operations related to CloudFiles functionality. - Event Records: Automatically create custom "CloudFiles Event" records, which can be leveraged in workflows and triggers. ## Apex Extend CloudFiles functionalities using Apex to build advanced, custom integrations for your Salesforce org. --- # Configuration (Document Generation) https://help.cloudfiles.io/salesforce/zGbV-configuration # Configuration Overview of the Salesforce Configuration section covering CloudFiles Account Setup, Doc Gen Widget Setup, Template Builder Setup, Usage, and User Management. > Kind: Guide · Updated: Jul 4, 2026 This section is the foundation for using CloudFiles in Salesforce. It guides you through setting up your CloudFiles Account, building Templates in Microsoft Word, excel and Powerpoint, Managing Users and much more. 1. **CloudFiles Account Setup** — This guide walks you through setting up a CloudFiles Account in Salesforce after installation. You'll learn how to access the CloudFiles App, connect your Salesforce Org, and verify the integration. 2. **Doc Gen Widget Set-up** — In this article, we cover how CloudFiles Document Generation helps create DOCX and PDF files using Salesforce data. It allows users to select templates directly from Salesforce records and generate documents, using the CloudFiles Word Add-in for template design and field mapping. 3. **Template Builder Setup** — This guide explains how to install the CloudFiles Add-in in Microsoft Word, Excel, and PowerPoint via Microsoft AppSource and connect it to Salesforce. It covers the setup process, including signing into your Sandbox Org, and authenticating with Salesforce 4. **Usage** — This guide covers the Usage Dashboard under Document Generation in Salesforce. It provides real-time visibility into document generation activities, consumption trends, and credit usage analytics. 5. **User Management** — Controlling user access and permissions is crucial for maintaining security and efficiency. This section covers:User Permissions – Define and assign roles to control access.License Management – Manage CloudFiles user licenses to ensure only authorized users have access. --- # CloudFiles Account Setup (Salesforce: Document Generation) https://help.cloudfiles.io/salesforce/XZw1-cloudfiles-account-setup # CloudFiles Account Setup How to set up a CloudFiles Account for your Salesforce Org after installing the CloudFiles Document Generation app. > Kind: Guide · Updated: Jul 4, 2026 Once the CloudFiles Document Generation | Create & Manage PDF, Word & more is installed succesfully in your Salesforce instance, you will need to setup a CloudFiles Account for the Salesforce Org. You can setup the CloudFiles app from within Salesforce by following the below steps. - Click on the App Launcher (9 dots icon) on top left of Salesforce and search 'CloudFiles'. ![](https://media.help.cloudfiles.io/dg-cloudfiles-account-setup-sf/01.gif) - You will land on the "Home" Tab of the CloudFiles App - Before connecting your Salesforce org to CloudFiles, select your preferred data region from the dropdown. Your data will be stored in your selected data region's data centers. We currently support the following regions: - USA (default) - Australia - European Union - United Kingdom > **Note** — This region selection determines where all your CloudFiles data (accounts, attachments, resource details, etc.) is stored and ensures your data never leaves the selected region for compliance with data residency requirements. ![](https://media.help.cloudfiles.io/dg-cloudfiles-account-setup-sf/02.png) - Once you've selected your region, click on "Setup" button to connect your Salesforce org to CloudFiles. ![](https://media.help.cloudfiles.io/dg-cloudfiles-account-setup-sf/03.png) - This pops the "Allow Access ?" prompt. Click "Allow". ![](https://media.help.cloudfiles.io/dg-cloudfiles-account-setup-sf/04.gif) - This connects your Salesforce Org with CloudFiles. You can confirm the Account details and connection status in the "Settings" Tab. ![](https://media.help.cloudfiles.io/dg-cloudfiles-account-setup-sf/05.png) --- # Doc Gen Widget Set-up https://help.cloudfiles.io/salesforce/doc-gen-widget-set-up # Doc Gen Widget Set-up CloudFiles Document Generation is used to generate DOCX and PDF documents using Salesforce data, integrating directly within Salesforce record pages. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles Document Generation is used to generate DOCX and PDF documents using Salesforce data. It integrates directly within Salesforce record pages, displaying all published templates related to a specific object. Users can select a template, generate a document, and download it in DOCX or PDF format. This functionality relies on the CloudFiles Word Add-in, which is used to design and manage document templates with Salesforce fields, and must be connected to your Salesforce Org for full functionality. ## Widget Configuration After setting up the CloudFiles Word Add-in, the Document Generation Widget can be configured within Salesforce using the Lightning App Builder. The widget supports several configuration options - - Widget Placement: You can add the widget to any record detail page, making it accessible directly from relevant Salesforce objects. - Template Display: The widget automatically pulls in and displays all published templates related to the specific Salesforce object, allowing users to select the appropriate template quickly. - Document Settings: Users can choose between DOCX and PDF output formats when generating documents. - Automatic Download: Once a document is generated, it is automatically downloaded to the user's device. - Field Mapping: Templates created using the Word Add-in are dynamically populated with Salesforce data based on field mappings configured within the template. ![](https://media.help.cloudfiles.io/dg-doc-gen-widget-set-up-sf/01.png) ## CloudFiles Document Generation Widget Set-up The CloudFiles Doc Gen LWC can be easily added to any object's record detail page in Salesforce. Once added, this widget will display all the published templates related to that object. Users can then generate documents in either DOCX or PDF format, which will be automatically downloaded upon generation. Follow the steps below to add CloudFiles Doc Gen widget to any page - - Go to any Object's record detail page and click “Edit Page” Button. - Lightning builder for this page will open. Drag and drop the "CloudFiles Doc Gen" widget into the desired location. - Save and exit the builder. - Refresh the Salesforce record page. - The widget displays all the published templates for that object. For visual understanding, refer to the video below - [Watch video](https://youtu.be/PPvVbst2dwE) > **Note** — If you're on a paid plan, reach out to the CloudFiles support team for further assistance, at - support@cloudfiles.io --- # Template Builder Setup https://help.cloudfiles.io/salesforce/template-builder-setup # Template Builder Setup This guide walks you through installing the CloudFiles add-in in Microsoft Word, Excel, or PowerPoint and connecting it to your Salesforce account. > Kind: Guide · Updated: Jul 4, 2026 This guide will walk you through the process of installing the CloudFiles add-in in Microsoft Word, Excel, or PowerPoint and connecting it to your Salesforce account. By completing these steps, you'll be able to create document templates within Microsoft apps using Salesforce data. 1. **How to Install CloudFiles Add-In** — This article guides you through installing the CloudFiles Add-in in Microsoft Word, Excel, and PowerPoint via Microsoft AppSource. 2. **Connect CloudFiles Add-in to Salesforce** — This article explains how to connect the CloudFiles Add-in to your Salesforce Org. It walks through the sign-in process, and authenticating with Salesforce. --- # How to Install CloudFiles Add-In https://help.cloudfiles.io/salesforce/how-to-install-cloudfiles-add-in # How to Install CloudFiles Add-In The CloudFiles add-in connects CloudFiles with your Salesforce Org, enabling template creation with Salesforce data. > Kind: Guide · Updated: Jul 4, 2026 The CloudFiles add-in connects CloudFiles with your Salesforce Org, enabling template creation with Salesforce data You can install the add-in for Microsoft Word, Excel, and PowerPoint, allowing you to design templates directly. > A valid Microsoft account is necessary to complete the installation successfully and access the CloudFiles add-in. ## Steps to Install the CloudFiles Add-in in Microsoft Word, Excel, or PowerPoint: - Open Microsoft Word, Excel, or PowerPoint on your PC. - Navigate to the Home tab and click on Add-ins to explore the available options. - In the Add-ins window, select + More Add-ins to open the Office Add-ins marketplace. - Click on Microsoft AppSource, which will redirect you to the AppSource page. - In the search bar, type CloudFiles and look for the relevant add-in in the search results. - Click on Get it now to begin the installation process. Follow the on-screen prompts to complete the installation. - Once the installation is complete, click on Open in Word/Excel/PowerPoint to launch the CloudFiles add-in. - The New Office Add-in sidebar will appear. Click on Allow and Continue to grant the necessary permissions and enable the add-in for use. Your CloudFiles add-in is now successfully installed and ready to be used within your Microsoft Office applications. [Watch video](https://youtu.be/0Kzyf8FzEhI) > Since the CloudFiles add-in is linked to your Microsoft account, once installed in one application (Word, Excel, or PowerPoint), it will automatically be available in the other two. The following two images diaplay the CloudFiles Add in Microsoft Excel and Powerpoint respectively ![](https://media.help.cloudfiles.io/dg-how-to-install-cloudfiles-add-in-sf/01.png) ![](https://media.help.cloudfiles.io/dg-how-to-install-cloudfiles-add-in-sf/02.png) --- # Connect CloudFiles Add-in to Salesforce https://help.cloudfiles.io/salesforce/connect-cloudfiles-add-in-to-salesforce # Connect CloudFiles Add-in to Salesforce Integrating the CloudFiles Add-in with your Salesforce Org allows you to create and manage document templates directly within Microsoft Word, Excel, and PowerPoint using Salesforce data. > Kind: Guide · Updated: Jul 4, 2026 ## Connecting CloudFiles Add-in to Salesforce Integrating the CloudFiles Add-in with your Salesforce Org allows you to create and manage document templates directly within Microsoft Word, Excel, and PowerPoint using Salesforce data. Follow these steps to connect the add-in and start building dynamic templates: - Open Microsoft Word, Excel, or PowerPoint and navigate to the Add-ins section. - Launch the CloudFiles add-in from the available options. - Click Sign in and select your Salesforce Org to enable document generation. - In the Sign-in sidebar, choose one of the following: - Production to connect to a Production Org. - Sandbox to connect to a Sandbox Org. - A Salesforce sign-in window will appear. Enter your Salesforce credentials and follow the on-screen instructions to complete authentication. - Once successfully signed in, you can start designing document templates directly in Word, Excel, or PowerPoint, embedding Salesforce fields for automated data population. With CloudFiles integrated, you can efficiently generate documents from Salesforce data while working within familiar Microsoft applications. ![](https://media.help.cloudfiles.io/dg-connect-cloudfiles-add-in-to-salesforce-sf/01.gif) Your CloudFiles add-in is now connected to Salesforce, allowing you to create and automate document generation. ![](https://media.help.cloudfiles.io/dg-connect-cloudfiles-add-in-to-salesforce-sf/02.png) The following two images diaplay the CloudFiles Add in Microsoft Excel and Powerpoint respectively. ![](https://media.help.cloudfiles.io/dg-connect-cloudfiles-add-in-to-salesforce-sf/03.png) ![](https://media.help.cloudfiles.io/dg-connect-cloudfiles-add-in-to-salesforce-sf/04.png) --- # Usage (Salesforce: Document Generation) https://help.cloudfiles.io/salesforce/9GOC-usage # Usage The Usage section under Document Generation in Salesforce provides a dashboard to monitor document generation activities, credit consumption, and usage trends using CloudFiles. > Kind: Guide · Updated: Jul 4, 2026 The Usage section under Document Generation in Salesforce provides an intuitive dashboard to monitor your document generation activities using CloudFiles. It offers real-time visibility into how document-related flow actions are being utilized, helping administrators and users understand their consumption trends and credit usage patterns. ## What Is Tracked? The dashboard displays the total number of documents generated using the following flow actions: - CloudFiles: Generate Document Used for standard document generation via flows, typically for one record at a time. Each time this action is executed in a flow, 1 credit is consumed per document generated, and 1 count is added to the usage metric. - CloudFiles: Generate Document (Batch) This flow action supports bulk generation and adds 1 credit and 1 document count for each document generated, even when multiple doc-gen template inputs are used. The dashboard reflects the total number of individual documents, not just the batch trigger. - CloudFiles: Generate Document (Sync) Each execution of this action results in the generation of 1 document, adding 1 count to the usage dashboard, and consuming 1 credit. ## Dashboard Overview The dashboard presents: - A bar graph showing the number of credits across time (daily/weekly/monthly intervals). - Total count of Doc-Gen actions executed within a selected time frame. - Filter options: - Interval Selector: Day, Week, Month - Date Range Selector: Last 7, 30, 90, 180 days, 1 year For instance, in the screenshot provided, 14 documents were generated between June 21 and July 21, with visible peaks on specific days, representing flow executions. ![](https://media.help.cloudfiles.io/dg-usage-sf/01.png) --- # User Management (Salesforce: Document Generation) https://help.cloudfiles.io/salesforce/GyWH-user-management # User Management User Management in CloudFiles ensures that users have the right access, licenses, and permissions to create templates and generate documents within Salesforce. > Kind: Guide · Updated: Jul 4, 2026 User Management in CloudFiles ensures that users have the right access, licenses, and permissions to create templates and generate documents within Salesforce. It covers two key areas: 1. **User Permissions** — Defines the specific actions a user can perform, such as creating templates and generating documents. Administrators can customize these permissions to control access levels based on user roles. 2. **License Management** — Controls the activation and assignment of licenses to Salesforce users. It ensures that only authorized users can access CloudFiles features based on their assigned licenses. --- # User Permissions (Salesforce: Document Generation) https://help.cloudfiles.io/salesforce/9MqH-user-permissions # User Permissions CloudFiles Document Generation package includes custom permissions and predefined permission sets to manage access to key features like template creation and document generation. > Kind: Guide · Updated: Jul 4, 2026 The CloudFiles Document Generation | Create & Manage PDF, Word & more package includes custom permissions to manage access to key features like template creation and document generation. To simplify user management, CloudFiles provides predefined permission sets tailored to common roles and access requirements. ## CloudFiles Custom Permissions CloudFiles offers granular permissions to manage access and functionality. - Superadmin - Allows a user to manage everything with regard to CloudFiles Document Generation. - Update Account Settings - Allows modifications to account-wide settings, including CloudFiles account name, billing, and defaults (recommended for admins only). ![](https://media.help.cloudfiles.io/dg-user-permissions-sf/01.png) ## Permission Sets CloudFiles comes with few pre-packaged permission sets. You can always create a custom permission set using CloudFiles permissions described above. 1 - CloudFiles Admin User - This permission set is suitable for admins who should have access to all CloudFiles functionality within Salesforce, including billing, creating templates and generating documents. 2 - CloudFiles Standard User - This permission set is suitable for all internal users (company employees) who should have access to all CloudFiles functionality except admin level features. 3 - CloudFiles External User - This permission set is suitable for all external users who can generate documents from already available templates. ## Permission Set Assignment To reduce the setup time, CloudFiles automatically assigns following permission sets on installation - - CloudFiles Admin User - This is assigned to all users with "System Administrator" profile - CloudFiles Standard User - This is assigned to all internal users except administrator - CloudFiles External User - This permission set is suitable for experience cloud users(community users). You can manage these assignments according to your needs. > When new users are added to your Salesforce org, they would need to be assigned CloudFiles permissions manually. You can also setup a flow to automatically do it when users are added. Please feel free to reach out to us for any help regarding this. To manually assign permission sets, please follow the steps below - Go to Setup > Permission Sets. - Select appropriately among the available default package permission sets or custom permission sets. - Click on Manage Assignments. Then Click Add Assignment. Choose the users you want to add the selected permission set for. - Follow the prompts to finish the assignment process. --- # License Management (Salesforce: Document Generation) https://help.cloudfiles.io/salesforce/Sps9-license-management # License Management CloudFiles License Management in Salesforce allows admins to monitor license usage and control which users have access to CloudFiles features. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles License Management in Salesforce allows admins to monitor license usage and control which users have access to CloudFiles features. Once the necessary permissions are assigned to Salesforce users, any interaction with the CloudFiles Lightning App or its Lightning Web Components (LWCs) will create a corresponding CloudFiles User. Alternatively, Admins can also explicitly assign licenses to users directly from the User Management page using the Manage Users option. ## Viewing CloudFiles Users You can view all CloudFiles users from the User Management page under the Document Generation tab of the CloudFiles app. The page shows the total number of active licenses and the total licenses allocated to your org. Each user entry displays their name, email address, and current license status (Active or Inactive). ![](https://media.help.cloudfiles.io/dg-license-management-sf/01.png) A Salesforce user must have an "Active" CloudFiles User status to access CloudFiles functionalities. If an "Inactive" user attempts to interact with a CloudFiles LWC, they will receive a "You need CloudFiles license to access this widget" message. ![](https://media.help.cloudfiles.io/dg-license-management-sf/02.png) To activate or deactivate a user: - Click the pencil (edit) icon next to the License Status column. - Select Active or Inactive from the dropdown. - Click Save to apply the changes. ![](https://media.help.cloudfiles.io/dg-license-management-sf/03.png) > **Note** — If despite having an active license the user is not able to interact with the widget, please confirm if the permission set has been correctly assigned to the user. Having either the 'CloudFiles Admin User' or 'CloudFiles Standard User' permission set is mandatory for any user to be able to interact with CloudFiles functionality. ## Managing Users Clicking Manage Users on the User Management page opens a detailed view of all Salesforce users in your org. This view includes additional columns: Profile and Role, and supports filtering by both columns to help you find and manage users more efficiently. ![](https://media.help.cloudfiles.io/dg-license-management-sf/04.png) To activate or deactivate a user, locate them in the list and toggle their license status accordingly. ## License Limitations The number of active CloudFiles users cannot exceed the total licenses allocated to your Salesforce org. If you try to activate more users than your license count allows, you will be prompted to purchase additional licenses. ![](https://media.help.cloudfiles.io/dg-license-management-sf/05.png) ## Buying Licenses You can add CloudFiles product licenses directly from the User Management page by clicking the Buy Licenses button in the top right. Any new licenses are immediately available for use and will be reflected in your billing as per your invoice. This lets you scale usage instantly without waiting for manual provisioning. ![](https://media.help.cloudfiles.io/dg-license-management-sf/06.png) --- # Template Creation https://help.cloudfiles.io/salesforce/template-creation # Template Creation Creating a template is the first step in generating documents using CloudFiles Doc-Gen. This is a step-by-step guide on how to create, preview, and publish templates using Microsoft Word and the CloudFiles Word add-in. > Kind: Guide · Updated: Jul 4, 2026 Creating a template is the first step in generating documents using CloudFiles Doc-Gen. Here's a step-by-step guide on how to create, preview, and publish templates using Microsoft Word and the CloudFiles Word add-in. ## Guideline for Creating Effective Templates A well-crafted template determines how a merged document will appear and what information it will contain. To create a functional template in Microsoft Word, familiarity with document creation in Word is essential. The more proficient you are with Word, the easier it will be to style the final output effectively. ### Using Existing Documents as Sources Most likely, you'll have source documents to work from, either electronic or printed, that you need to reproduce as templates. These source documents can quickly give you a list of data fields to collect. If you don't have an existing document, you can mock up a template and list the fields, their object, and any special formatting required. ### Identifying Repeating Data & Conditional Content Your template may include content common across all generated documents. For example, in a quote, you might want to insert your company logo, which should be present in every generated quote. Identify such content and build templates accordingly. You may also want to set up conditions for including specific content in the generated document based on certain criteria. For example, different agreement points might be included in a contract based on an Account's ACV. ### Gathering Information Identify and gather all the information you want to display on the merged documents. For instance, if your final document is an invoice, you'll need data about the account, order number, inventory levels, shipping information, price, and the sales representative. Data contained in the Salesforce Master Object where the CloudFiles Doc-Gen is placed will be automatically available to the Builder. All other data must be gathered by creating Resources. By following these guidelines, you can create effective templates that ensure consistent and accurate document generation. ## Stages of Setting Up CloudFiles Doc-Gen Templates You can build as many templates as you need for any Salesforce object, preview them once built, and then publish them to make them available in your Salesforce Org for document generation. > **Note** — 'Stage Progress Bar' at the top in the add-in will help you track and navigate between different stages. Below are the stages involved in setting up templates using CloudFiles Doc Gen - ### 1 - Building Template In the Build stage, you select the Salesforce object you want to create a template for. Using various actions, you can insert object fields, related data, and custom resources. Besides field insertions, you can add pictures, tables, and set conditions for content insertion. You can also specify the title of the generated documents. Through the building stage, you will be able to utilize Template - Resources to retrieve data from connected Salesforce Org and design the template with these resources using Template - Actions. Once the CloudFiles Word Add-in is installed and the Salesforce Org is connected, follow the walkthrough instructions given below to start building your own template- - Select CloudFiles add-in > Login to your Salesforce account. - Select platform as Salesforce and pick the record based on relevancy. (Here we will be using Account as the record) - Platform > Salesforce and Record > Account - Once you click on Submit, you will be directed to the next stage of selecting Template - Actions and utilizing various Template - Resources. You can use specific resources and appropriate actions according to your use case. Refer to the GIF below to have a visual understanding of these steps - ![](https://media.help.cloudfiles.io/dg-template-creation-sf/01.gif) We will create the template by inserting placeholders using actions. These placeholders will automatically be populated with the selected resources once the document is generated later in the process. ### 2 - Preview the Template Once we have finished building the template, you can preview it for a particular record to ensure it produces the desired output before publishing. Follow the steps below - - Click on 'Preview' in the stage progress bar. - Enter the Record Id. - Click on 'Generate preview'. A "Preview is generated successfully" message will prompt once the preview is generated. You can download and see the document by clicking 'Open' against the message prompt. Refer to the GIF below to have a visual understanding of these steps - ![](https://media.help.cloudfiles.io/dg-template-creation-sf/02.gif) ### 3 - Publish the Template After building a template in the 'Build' stage and reviewing it in the 'Preview' stage, the final step is to publish the template. Publishing makes the template available in your Salesforce Org for document generation on the specified object. Here's how you can publish the template: - Go to 'Publish' from the Stage Navigation Bar. - Select the appropriate publish option. - Click 'Publish' to publish the template. > **Note** — To publish as a new template for the object, check the 'Publish as a New Template' checkbox.To publish as an update to an existing template for the object, check 'Select an existing template' and choose an existing template from the drop-down. Once the template is published, you can check the newly created or updated template from the 'CloudFiles Doc-Gen' widget on the object's page or from the 'Document Generation' tab of the CloudFiles app. --- # Template - Resources https://help.cloudfiles.io/salesforce/template-resources # Template - Resources An overview of the resource types available in the Builder — Record Single Variable, Record Collection Variable, Runtime Variable, and Recipients — and how they can be combined for advanced template logic. > Kind: Guide · Updated: Jul 4, 2026 The Builder automatically retrieves all fields (both standard and custom) from the selected Master Object. In addition to these, you may need data from other records, record collections, or use variables with predefined values, or store a value that can be used in the building process. To achieve this, you create resources by clicking "+ Create New Resource" in the Resources section of the Builder. Depending on the type, configure its object type, filters, limits, or values. The available types of resources: 1. **Record Single Variable** — A Record Single Variable represents a single record and holds all its field values. It is ideal for working with a specific data entry, such as a Contact, Opportunity, or Account. The record can either be related to the main template object or be an independent record fetched using filter criteria. 2. **Record Collection Variable** — A Record Collection Variable represents a group or list of records from a Salesforce object. It stores multiple records that meet defined criteria and is typically used when you need to work with repeating data entries, such as a list of Products, Contacts, or Tasks within your document. 3. **Runtime Variable** — Documents can also be generated from Salesforce Flows. Runtime Variables allow you to pass dynamic values from a Flow into the document at runtime. They can hold values such as a user’s email, record ID, or other flow inputs. You can assign a default value or override it using field data or constants. 4. **Recipents** — The Recipients resource allows you to define the individuals who will receive and sign generated documents via DocuSign. This resource holds information such as the recipient’s name and email address, which are critical for routing the document to the right person for e-signature. ## Combining Resources for Advanced Logic You can combine different types of resources to create more dynamic templates. For example, a Runtime Variable can serve as a filter input for both Record Single Variable and Record Collection Variable. Similarly, field values from a Record Single Variable can be used to filter a Record Collection Variable, allowing you to narrow down the collection based on a specific record’s attributes. --- # Record Single Variable (Guide · Salesforce) https://help.cloudfiles.io/salesforce/record-single-variable # Record Single Variable A Record Single Variable retrieves an entire record and its field values based on defined filter conditions, similar to retrieving an Object Record with conditions set on fields. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction A Record Single Variable contains an entire record and all of the field values on that record. Creating a Record Single Variable is like retrieving an Object Record with conditions set on the fields. For example, creating a Contract document from the Contract Object may require details from other associated or unassociated records, such as Opportunity amount or Account ACV. These Account or Opportunity records can be retrieved as a Record Single Variable with conditions set like Opportunity Id = Contract > Opportunity Id. To create a Record Single Variable, follow the steps below - - Click 'Resources'; the Resource Manager opens up. - In the 'New Resource' pane, select Resource type from the drop-down as 'Record Single Variable'. - Enter a Label, and the API Name will automatically populate. - Select the Object. ![](https://media.help.cloudfiles.io/dg-record-single-variable-sf/01.png) ## Filters To determine which record is retrieved, you must define filter conditions. These conditions are used to compare values from the selected object and determine if a record meets the required logic to proceed. Begin by selecting the main operator that controls how multiple conditions will be evaluated: - AND: All conditions must be true - OR: At least one condition must be true - Custom: Allows for advanced expressions (e.g., (1 AND 2) OR 3) Once the main operator is set, define one or more filter conditions. Each condition includes: - A Field from the selected object - A comparison Operator - A Value to compare against Click + Add Condition to include additional filter rows. The overall filter logic follows the main operator you selected (AND/OR/Custom) ![](https://media.help.cloudfiles.io/dg-record-single-variable-sf/02.png) ### Add Conditions ### Field: The Field dropdown allows you to select a specific field from the chosen object to filter or identify a record based on matching criteria. (e.g., Email, FirstName, Status, Custom_Field__c) ### Operator: Choose a logical operator from the dropdown: - Equals: Matches records with a field exactly equal to the specified value (e.g., for String, Picklist, Number, Boolean). - Not Equals: Matches records where the field does not equal the given value(e.g., for String, Picklist, Number, Boolean). - Greater Than: Matches records where the field value is numerically greater (e.g., for Integer, Decimals, Currency). - Greater Than or Equals: Matches records where the value is greater than or exactly equal (e.g., for Integer, Decimals, Currency). - Less Than: Matches records with a value lower than the specified input (e.g., for Integer, Decimals, Currency). - Less Than or Equals: Matches records with a value that is less than or exactly equal (e.g., for Integer, Decimals, Currency). - In: Matches records where the field value is one of multiple specified values (e.g., for Picklist, Multi-Select Picklist). - Not In: Excludes records that match any of the specified values (e.g., for Picklist, Multi-Select Picklist). - Like: Matches records based on partial text (e.g., for Text, Email, URL). ### Value: The Value field is used to specify what the selected Field should be compared against. This can take multiple forms, depending on your use case: - Global Variables: Field value from the same object record ({!$Record.Id}). - Record (Single) Variables: Field value from related records. - Runtime Variable: Dynamic Runtime Variable value passed into or generated within the flow that allows conditions to adapt based on the data being processed during execution. - Global Constants: A direct input like the following: - {$GlobalConstant.False} - Boolean false - {$GlobalConstant.True} - Boolean true - {$GlobalConstant.EmptyString} - Represents a blank or empty value - {$GlobalConstant.CurrentTime} - Dynamically inserts the exact timestamp when the Document is generated - Collection Variable: Record Collection Variable are now supported as filter values when using the IN or NOT IN operators, allowing records to be matched dynamically against a list of values at runtime. ## Order By (Optional) You can optionally define the order in which matching records should be sorted by selecting a field. Sorting can be done in ascending (e.g., oldest to newest, A–Z) or descending (e.g., newest to oldest, Z–A) order. Once sorted, only the first record in the resulting list will be fetched and stored in the variable. > Use case:A company uses CloudFiles to generate contract documents automatically. Each Contract is related to an Opportunity, and the business team wants the generated contract to include the most recent Opportunity Amount linked to the same Account.Goal: Retrieve the latest Opportunity associated with the Account at the time of contract generation and display its Opportunity Amount within the document.Below is the video demonstration of this use case. [Watch video](https://www.youtube.com/embed/vYk_HdvtSls) --- # Record Collection Variable (Guide · Salesforce) https://help.cloudfiles.io/salesforce/record-collection-variable # Record Collection Variable A Record Collection Variable is a collection of records, created by selecting an Object type and setting filter, order-by, and group-by conditions on its fields. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction A Record Collection Variable is a collection of records. Creating a Record Collection Variable involves selecting the Object type and setting conditions on the record fields. To create a Record Collection Variable, follow the steps below - - Click 'Resources'; the Resource Manager opens up. - In the 'New Resource' pane, select Resource type from the drop-down as 'Record Collection Variable'. - Enter a Label, and the API Name will automatically populate. - Select the Object. - You can limit the number of output records using the 'Limit Rows' option. ![](https://media.help.cloudfiles.io/dg-record-collection-variable-sf/01.png) ## Filters To determine which records are retrieved in a Record Collection Variable, you must define filter conditions. These conditions help narrow down records from the selected object based on field values and matching criteria. Begin by selecting the main operator that controls how multiple conditions will be evaluated: - AND: All conditions must be true - OR: At least one condition must be true - Custom: Allows for advanced expressions (e.g., (1 AND 2) OR 3) Once the main operator is set, define one or more filter conditions. Each condition includes: - A Field from the selected object - A comparison Operator - A Value to compare against ![](https://media.help.cloudfiles.io/dg-record-collection-variable-sf/02.png) ### Condition: ### Field: The Field dropdown allows you to select the specific object field that should be used to filter or identify a record based on matching criteria. (e.g., Email, FirstName, Status, Custom_Field__c) ### Operator: Choose a logical operator from the dropdown: - Equals: Matches records with a field exactly equal to the specified value (e.g., for String, Picklist, Number, Boolean). - Not Equals: Matches records where the field does not equal the given value(e.g., for String, Picklist, Number, Boolean). - Greater Than: Matches records where the field value is numerically greater (e.g., for Integer, Decimals, Currency). - Greater Than or Equals: Matches records where the value is greater than or exactly equal (e.g., for Integer, Decimals, Currency). - Less Than: Matches records with a value lower than the specified input (e.g., for Integer, Decimals, Currency). - Less Than or Equals: Matches records with a value that is less than or exactly equal (e.g., for Integer, Decimals, Currency). - In: Matches records where the field value is one of multiple specified values (e.g., for Picklist, Multi-Select Picklist). - Not In: Excludes records that match any of the specified values (e.g., for Picklist, Multi-Select Picklist). - Like: Matches records based on partial text (e.g., for Text, Email). ### Value: The Value field is used to specify what the selected Field should be compared against. This can take multiple forms, depending on your use case: - Global Variables: Field value from the same object record ({!$Record.Id}). - Record (Single) Variables: Field value from related records. - Runtime variable: Dynamic Runtime Variable value passed into or generated within the flow that allows conditions to adapt based on the data being processed during execution. - Global Constants: A direct input like the following: - {$GlobalConstant.False} - Boolean false - {$GlobalConstant.True} - Boolean true - {$GlobalConstant.EmptyString} - Represents a blank or empty value - {$GlobalConstant.CurrentTime} - Dynamically inserts the exact timestamp when the Document is generated Click + Add Condition to include additional filter rows. The overall filter logic follows the main operator you selected (AND/OR/Custom). ## Order By (Optional) You can optionally define the order in which matching records are sorted by selecting a field. Sorting can be done in ascending or descending order. The sort order directly determines which records are fetched when a limit is applied. For example, if a limit is set (e.g., 10 records), the top records based on the specified order will be added to the collection variable. ![](https://media.help.cloudfiles.io/dg-record-collection-variable-sf/03.png) ## Group By (Optional) Grouping lets you summarize records by one or more selected fields and return aggregated values—such as Sum, Average, Maximum, Minimum, and Count—calculated from numeric fields within each group. - Sum – Total of all numeric values in the field across the collection - Average – Mean of the field's values across the collection - Maximum / Minimum – Highest or lowest value of the field in the collection - Count – Total number of records in the collection Follow the steps below to group and summarize values: - Select one or more Group By Fields (e.g., Stage, Status) - Define aggregations for grouped data: - Field: Select a field to aggregate (e.g., Amount) - Function: Choose an aggregation method (e.g., Sum, Avg, Max, Min, Count) - Alias: This will be automatically generated based on the selected field and function (e.g., Amount_SUM) Click + Add Aggregation to define more. > **Important** — Aggregation functions (e.g., Sum, Avg, Max, Min, Count) can only be applied to number-type fields. When grouping a Record Collection, results will only be returned if the selected aggregation fields are numeric.Non-numeric fields (like text or dates) are not supported for these functions and will not produce valid aggregated results.Once records are grouped, only the Group By field and the aggregated fields will be available for use in your template. Other fields from the original ungrouped records will not be accessible in the output. To use the fields from the Record Collection Variable, you will need to use the Insert Loop or Insert Table actions available in the template editor. > Use Case:An account management team generates a monthly summary report for each customer using CloudFiles. They want to include a breakdown of all related Opportunities, grouped by Stage, along with the total Opportunity Amount in each stage.Goal: Use a Record Collection Variable to fetch all Opportunities linked to the same Account, group them by Stage, and calculate the sum of Opportunity Amount for each stage. This allows for dynamic summarization within the generated document.Below is the video demonstration of this use case. [Watch video](https://www.youtube.com/watch?v=oEcOwkyqqCw) --- # Runtime Variable (Guide · Salesforce) https://help.cloudfiles.io/salesforce/runtime-variable # Runtime Variable A Runtime Variable stores a value passed from a Salesforce Flow, generated dynamically during execution, that can be used to drive document logic and content at generation time. > Kind: Guide · Updated: Jul 4, 2026 A Runtime Variable stores a value that can be passed from a Salesforce Flow, generated dynamically during execution. It acts as a holder for data that may be used or modified throughout the document generation. It enables the flow to pass values—such as a user’s email, record ID, or custom input—into the document logic at runtime. You can set a default value or override it with field data or constants. Runtime Variables are ideal for passing values from flows, filtering or selecting records conditionally, and driving template decisions (e.g., showing/hiding sections) using flow action Generate Document. ## Single Runtime Variable To create a Variable, follow the steps below - - Click 'Resources'; the Resource Manager opens up. - In the 'New Resource' pane, select Resource type from the drop-down as 'Runtime Variable'. - Enter a Label, and the API Name will automatically populate. - Assign a Value Type based on your requirement such as String, Integer, Double, etc. - You can assign Default Value if needed. ![](https://media.help.cloudfiles.io/dg-runtime-variable-sf/01.png) ### Value Types Value types should be selected based on the field type or variable type available in the Salesforce Flow from which the value is passed. String: All text-based fields from Salesforce can be passed as strings. Examples: RecordId, Text, Pickist, Textarea, Email, URL, Phone Integer: All number fields without decimals can be passed in as integers. Examples: Number, Phone, any field declared as Integerin Salesforce. Double: All numeric fields that allow decimal values can be passed as doubles. Examples: Currency, Percent, Number(with Decimals) Boolean: True/False fields can be passed as Boolean values. This includes any Checkbox values from a Screen Flow or Boolean fields from Salesforce records. Examples: Checkbox Date: Fields that store only the calendar date (without time) can be passed as Date. DateTime: Fields containing both date and time components should be passed as DateTime. Examples: CreatedDate, LastModifiedDate - Datetime Time: Fields that store only time (without date) can be passed as Time Rich Text Area: Fields storing formatted text content can be passed in as Rich Text, which includes styling such as bold, italic, and underline; paragraph formatting like line breaks, bullet points, and numbered lists; embedded hyperlinks; and basic HTML tags (e.g ,, , , ). > Use Case - Single variable1. Pass Email from Flow to DocumentGoal: Dynamically display user-specific data—such as the email ID—by passing it from a Salesforce Flow into the CloudFiles Template during document generation.To achieve this, begin by defining a Runtime Variable of type String in the CloudFiles Template through the New Resource pane. Then, within your Salesforce Flow, create a flow variable with Apex-Defined type and choose the class 'cldfs_CloudFilesVariable'. Set the following fields in the Assignment step of the Flow:key: This should match the API name of the Runtime Variable in the template.valueString: This holds the value you wish to pass (e.g., an email or name). You can assign the value from the screen input element 'Email'.Once set, the Runtime Variable will carry the Flow-provided value into the document generation process, allowing the content to reflect dynamic runtime data.2. Fetch a Record Using Runtime VariableGoal: Use a Runtime Variable to fetch a specific record dynamically based on input (such as an email address) provided from a Salesforce Flow. To dynamically fetch a single Contact record, a Runtime Variable can be created in the CloudFiles template to hold the Contact’s email address, which is passed as input from a Salesforce Flow. This enables Document Generation to use the provided email to filter and retrieve the matching Contact record (Record Single Variable). A CloudFiles variable in the Flow is used to pass this email value at runtime. Once the record is fetched, its fields can be dynamically merged into a document template for personalized document generation. > Assigning Value in Flow Create a variable of data type Apex-Defined, and select the Apex class as 'cldfs_CloudFilesVariable' 2. This variable has key and valueString as parameters, which must be assigned using the Assignment element in the flow. key is the API name of the Runtime Variable as defined in the CloudFiles template.valueString is the actual value you want to assign and pass to the Runtime Variable at runtime.Add it to the collection variable Use the cldfs_variables as the Flow action (Generate Document) input - CloudFiles Variables. ## Collection Runtime Variable To store and pass multiple runtime values, enable the Allow multiple values option while creating the Runtime Variable in the template. This option allows the variable to hold a list of values rather than just one, so that multiple entries can be assigned and processed during flow execution. This is useful when you expect repeated or grouped inputs from Salesforce Flows, such as lists of names, or other dynamic content that needs to appear in loops or tables within the document. > Use Case - CollectionPassing Runtime Variable collection from FlowGoal: Display a list of values, such as multiple product names, by passing a collection from a Salesforce Flow into a CloudFiles document.Enable "Allow multiple values" while creating a Runtime Variable in the template. In Flow, assign each item’s value to valueString, add that variable to a CloudFiles collection variable, and then map the entire collection to valueCollection (after defining the key).Refer to the callout below for detailed steps on how to configure Flow variables to assign values to display them dynamically in a loop or table within the document. > Assigning Values in FlowIn the CloudFiles template, create a Runtime Variable of type String with Allow multiple values enabled.To pass a list of items (e.g., products) into this Runtime Variable, configure the following Apex-defined Flow variables (Apex Class: cldfs_CloudFilesVariable):var_ProductSingle – to hold one item at a time. var_ProductCollection – to gather all items. var_ProductList – to map the values to the Runtime Variable defined in the template.Use an Assignment element to build the collection:Set the current product value on the single variable:Add that single variable into the collection:Repeat this step for each product (manually or inside a Flow Loop).Use another Assignment element to map the collection to the template variable:Set the key to the Runtime Variable API Name:Assign the collected values:Add var_ProductList to the CloudFiles Variable collection used as the Flow action input - CloudFiles Variables. --- # Recipients (Guide · Salesforce) https://help.cloudfiles.io/salesforce/recipents # Recipients The Recipients resource lets you define the individuals who will receive and sign generated documents via DocuSign, holding info such as name and email for routing documents for e-signature. > Kind: Guide · Updated: Jul 4, 2026 The Recipients resource allows you to define the individuals who will receive and sign generated documents via DocuSign. This resource holds information such as the recipient’s name and email address, which are critical for routing the document to the right person for e-signature. This is a key part of using DocuSign with Word documents. It allows you to assign each signature space to the correct recipient. A Recipient is a configuration that holds: - Label – An internal name you assign (e.g., Primary Approver or Client Contact). - Name Field – A merge field from your record that dynamically inserts the recipient’s name. - Email Field – A merge field pointing to the recipient’s email address, used to send the signature request via DocuSign. ## ➕ How to Create a Recipient Resource To create a new recipient: - Navigate to the Template → Resources tab and click + Create New Resource. - Set the Resource Type to Recipient. - Enter the following fields: - Label – Custom name for this recipient. - Name Field – Select a dynamic field (e.g., {$Record.Owner.Name}). - Email Field – Select the email field (e.g., {$Record.Owner.Email}). - Click Save. ![](https://media.help.cloudfiles.io/dg-recipents-sf/01.png) > **Important** — Make sure the email field contains a valid email. Otherwise, DocuSign won’t be able to deliver the signing request. Once a recipient is configured, you can assign them to a signature field inside your Word template. To insert a signature field and link it to a recipient, you’ll need to use the Insert Form Field action. --- # Template - Actions https://help.cloudfiles.io/salesforce/template-actions # Template - Actions Overview of template actions available in Word, Excel, PowerPoint, and PDF templates for dynamically inserting Salesforce data. > Kind: Guide · Updated: Jul 4, 2026 Now that we have created resources, the next step is to build templates using template actions. We offer templates in Word, Excel, and PowerPoint, each with its own set of unique actions, which we will explore in this article. 1. **Excel Template Actions** — Template actions in Excel enable dynamic insertion of fields and tables based on Salesforce data. These actions facilitate structured content, automate document generation, and streamline file organization by setting document titles. By utilizing these features, you can improve accuracy, flexibility, and efficiency in template creation. 2. **Pdf Template Actions** — PDF template actions let you insert field values or select checkboxes in fillable PDF forms using Salesforce data. These actions are useful for filling tax forms or agreements, where the layout stays fixed but values come from Salesforce records. 3. **PowerPoint Template Actions** — PowerPoint template actions allow you to dynamically insert fields and tables using Salesforce data. They facilitate structured content, automate document creation, and help manage files by defining document titles. Leveraging these features enhances accuracy, adaptability, and efficiency in template design. 4. **Word DocX Template Actions** — Template actions in Word allow you to dynamically insert fields, images, tables, loops, and conditions based on Salesforce data. These actions enable structured content, automate document generation, and help organize files by setting document titles. By leveraging these features, you can enhance accuracy, flexibility, and efficiency in template creation. --- # Word DocX Template Actions (Guide · Salesforce) https://help.cloudfiles.io/salesforce/word-docx-template-actions # Word DocX Template Actions Overview of Word DocX Template Actions in CloudFiles Doc Gen, covering Insert Field, Insert Picture, Insert Table, Insert Loop, Insert Condition, Insert Link, and Document Title actions for building document templates. > Kind: Guide · Updated: Jul 4, 2026 In the Actions section, you can customize your document templates using various operations. These actions allow you to insert fields, pictures, tables, apply conditions, and set document titles based on your requirements. After setting up your resources, you can use the following actions to build your template: - Insert Field – Add standard or custom fields from the Master Object, or create and insert resources as needed. - Insert Picture – Insert images from URL fields directly into your document template. - Insert Table – Create and customize tables based on Salesforce records, adjusting structure and content as required. - Insert Loop – Repeat a section of the template dynamically for a set of records or a record collection. - Insert Condition – Apply conditional logic to insert text, tables, or pictures based on specific field values. - Inser Link - The Insert Link action adds a hyperlink to your document using a stored URL. The link can have a custom label and dynamically update if the URL is stored in a record. - Document Title – Assign a title to the generated document by selecting a relevant field for better organization. ## Video Overview The image below illustrates the process of generating a receipt using CloudFiles Doc Gen. ![](https://media.help.cloudfiles.io/dg-word-docx-template-actions-sf/01.jpg) The video guides the user through the process of creating a Word template for document generation in CloudFiles Doc Gen. It explains how to structure the template and map Salesforce record fields for automated receipt generation. [Watch video](https://youtu.be/yR75QbsCFc8) --- # Insert Field (Word · Salesforce) https://help.cloudfiles.io/salesforce/XuxX-insert-field # Insert Field This action allows you to insert any field (standard or custom) retrieved from the Master Object, User Object, Record Variable, or Runtime Variable. > Kind: Guide · Updated: Jul 31, 2026 This action allows you to insert any field (standard or custom) retrieved from the Master Object, User Object, Record Variable, or Runtime Variable. To insert data from the following: - Master Object: The source record selected at the start, containing all its fields. - User Object: Holds context of the user generating the document / running the flow. - Record Variable: Holds a record and its field values, created by selecting an object type and setting conditions. - Runtime Variable: Stores a value for reuse or modification, using field or constant values with an optional default. ## Follow the steps below to insert a field: - Select Insert Field from the Select Action drop-down menu. - Choose the desired field from the drop-down menu. - Master Object fields are listed under "Record" (Global Variables). - User Object fields are listed under "User" (Global Variables). - Record Variables appear under "Variable". - Runtime Variables and constants are listed under "Global Constants". - Click Insert to place the field at the cursor's location in the work area. You can also copy and paste inserted fields as needed. ## Formatting Options: Text: You can choose to capitalize (first letter in uppercase), use lowercase, or uppercase for the text. ![](https://media.help.cloudfiles.io/dg-insert-field-sf/01.png) Font: All inserted fields can be formatted like regular text in Word, including changes to font, size, and style. Date Formatting: Date and datetime fields have a Format dropdown with four presets and a Custom option. ![](https://media.help.cloudfiles.io/dg-insert-field-sf/02.png) | Option | Output | |---|---| | Short | 08/23/2024 | | Medium | Aug 23, 2024 | | Long | August 23, 2024 | | Full | Friday, August 23, 2024 | | Custom | Any pattern you define | Select Custom when you need a time component, a non-US date order, or a format the presets do not cover. - Set Format to Custom. - Enter a pattern in the Pattern box, such as MMM dd, yyyy. - Check the Preview line below the box. It shows your pattern applied to a sample date, so you can confirm the output before inserting. - Click Insert. ![Custom date pattern with live preview in the Insert Field panel](https://media.help.cloudfiles.io/dg-insert-field-sf/date-custom-preview.png) Select Tokens next to Pattern to see every supported token with an example of its output. ![Supported date format tokens with meanings and examples](https://media.help.cloudfiles.io/dg-insert-field-sf/date-format-tokens.png) Separators such as /, -, , and spaces are printed exactly as you type them. > **Tokens are case sensitive.** — MM is the month and mm is minutes, so dd/mm/yyyy prints the minutes value where you expect the month. Use dd/MM/yyyy. Pair hh with a so a 12 hour time shows AM or PM. Patterns accept tokens and separators only. Literal words are not supported, and single quotes do not work as escape characters, so a pattern such as dd 'of' MMMM will not produce the result you expect. Number Formatting: Number, currency, and percent fields accept a format pattern that controls decimal places, separators, and any currency symbol. Enter the pattern in the Format box. ![](https://media.help.cloudfiles.io/dg-insert-field-sf/upload-f2d78120.png) A pattern describes a shape, not an example value. Only four characters control the number: | Character | What it does | |---|---| | 0 | Always shows a digit. Inserts a zero if the value has none. | | # | Shows a digit only if the value has one. | | , | Thousands separator. | | . | Decimal separator. | Anything else you type, such as $, £, or GBP, is printed as-is around the number. How decimals behave Characters after the . set the maximum number of decimal places, and the value is rounded half-up to fit. 0 and # then decide whether each digit is shown. - .00 always shows two decimals. 9,503.1 prints as 9,503.10. - .## shows up to two decimals and drops trailing zeros. 9,503.10 prints as 9,503.1, and 10,000.00 prints as 10,000. The same logic applies before the decimal point. With ###,###.##, a value of 0.89 prints as .89 because the leading zero is dropped. Ending the whole number part with 0, as in #,##0.00, always keeps at least one digit. Recommended patterns | Use case | Pattern | Value | Output | |---|---|---|---| | Currency | £#,##0.00 | 9503.11 | £9,503.11 | | Currency | £#,##0.00 | 10000 | £10,000.00 | | Whole numbers | #,##0 | 1234.6 | 1,235 | | Percent, field stores 0.1234 | 0.00% | 0.1234 | 12.34% | | Percent, field stores 12.5 | 0.00\% | 12.5 | 12.50% | Use 0 for every digit you want guaranteed. For currency, £#,##0.00 is almost always the correct pattern. A % placed after the digits multiplies the value by 100 before printing. Salesforce percent fields already store 12.5 rather than 0.125, so write the sign as \% to print it without multiplying. Other separator styles Always write the pattern with , for grouping and . for decimals. To print a different convention such as 1.234.567,89, set the Group Separator and Decimal Separator dropdowns below the Format box. These change the printed characters only. The pattern itself stays in standard notation. Go to 0:27 to see the Insert Field action being used to create a sample receipt in Microsoft Word. [Watch video](https://youtu.be/yR75QbsCFc8?t=20) --- # Insert Picture (Word · Salesforce) https://help.cloudfiles.io/salesforce/insert-picture # Insert Picture This action enables you to insert a picture from either a URL field or a Salesforce Content Version ID. > Kind: Guide · Updated: Jul 4, 2026 This action enables you to insert a picture from either a URL field or a Salesforce Content Version ID. You can retrieve the image link or ID from a record field, a resource, or enter it manually. Follow the steps below to insert a picture: There are two ways to provide the image source: - Using a URL – Add a direct link to a public image. The link can come from a field in your records, a resource, or be entered manually. - Using a Salesforce Content Version ID – Use the unique ContentVersionId of an image stored in Salesforce. This allows you to insert images securely from your Salesforce library. ## Inserting an Image Using a URL - Select "Insert Picture" - From the Select Action drop-down menu, choose Insert Picture. - Choose the Picture Source - In the Picture Source drop-down, select URL. - Select the URL Field - In the URL drop-down, choose the field that contains the public link to the image. - This field can dynamically insert images based on URLs retrieved from record fields or other variable resources. - Insert the Image - Click Insert to place the image at the desired location. - Adjust the Image - Resize or reposition the image as needed. - Apply formatting options, such as adding a border, for a polished appearance. ![](https://media.help.cloudfiles.io/dg-insert-picture-sf/01.png) ## Inserting an Image Using a Salesforce Content Version ID - Select "Insert Picture" - From the Select Action drop-down menu, choose Insert Picture. - Choose the Picture Source - In the Picture Source drop-down, select Salesforce Content Version. - Select the Content Version ID Field - In the Salesforce Content Version ID drop-down, choose the field containing the ContentVersionId of the image you want to insert, or enter a static ContentVersionId. - Insert the Image - Click Insert to place the image at the desired location. - Adjust the Image - Resize or reposition the image as needed. - Apply formatting options, such as adding a border, for a polished appearance. ![](https://media.help.cloudfiles.io/dg-insert-picture-sf/02.png) Go to 0:17 to see the Insert Picture action being used to create a sample receipt in Microsoft Word. [Watch video](https://youtu.be/yR75QbsCFc8?t=20) --- # Insert Table (Word · Salesforce) https://help.cloudfiles.io/salesforce/WRbK-insert-table # Insert Table Learn how to insert a table into a Microsoft Word template using a Salesforce Record Collection Variable, including defining structure, inserting fields, sorting, and applying filters. > Kind: Guide · Updated: Jul 4, 2026 You can insert a table into a Microsoft Word template using data from Salesforce records. These records are stored as a Collection Variable Resource, which allows you to retrieve and display structured data within the document. - Select the Action: - In the "Select Action" dropdown, choose "Insert Table." - Choose a Record Collection Variable: - In the "Resource Type" field, select a Record Collection Variable Resource. - Ensure that a resource is created before inserting the table. - Only one collection variable is supported per table. Multiple collection variables are not currently supported. - Define Table Structure: - Set the resource type as a collection. - Specify the number of columns and rows required. - You can define or later modify the number of rows and columns using the built-in table editing tools (similar to Excel). - Insert Fields and Manage Rows: - Insert relevant fields into the table. You can insert multiple fields into the same cell. - To create dynamic rows, set them as data rows by placing the cursor in any cell of the required row and click the Make Data Row option that appears under the Insert Table action. - Sort Records : - You can control the order of records displayed in the table. - For example, to display orders in ascending order of amount, select the "Amount" field and set the order to Ascending. - Apply Filters and Limits: - Set filters to refine the records inserted into the table. - Limit the number of records displayed. - Define the order in which records appear. > Data rows repeat themselves for the selected collection. For example, the first row represents the first order item, the second row represents the second order item, and so on. > While using the Insert Field action, the created Record Collection Variable is only available when you enter the Data row.Fields, conditions, and links can only be inserted within a designated Data Row By following these steps, you can dynamically insert and manage tables in Salesforce based on record collections. ![](https://media.help.cloudfiles.io/dg-insert-table-sf/01.png) > You can customize and format the table using standard Word formatting options, including font styles, alignment, borders, and shading. Go to 1:29 to see the Insert Table action being used to create a sample receipt in Microsoft Word. Tables are useful for presenting hierarchical data, such as master-detail relationships, in a structured and organized manner. [Watch video](https://youtu.be/yR75QbsCFc8?t=20) --- # Insert Loop (Guide · Salesforce) https://help.cloudfiles.io/salesforce/insert-loop # Insert Loop The Insert Loop action repeats a template section with fields dynamically populated from records in a Record Collection. > Kind: Guide · Updated: Jul 4, 2026 The Insert Loop action allows you to repeat a specific section of a template with fields dynamically populated from object records. This repeated section is added consecutively in the template, with each iteration using field values from the next record in a collection. The records used for the loop can be retrieved from any Record Collection in Salesforce. ## How to Insert a Loop- ### Step 1- Prepare a Record Collection Resource To insert a loop, first create a Record Collection Resource that defines the collection of records over which the loop will be performed. Example: If your base object is Account and you want to loop through related Opportunities , create a Record Collection Resource that retrieves all Opportunities where: - Account Id = Record.Id (i.e., the current Account record's Id). ![](https://media.help.cloudfiles.io/dg-insert-loop-sf/01.png) ### Step 2- Insert the Loop in the Template - Use the Select Action dropdown and choose Insert Loop . - In the Resource Type dropdown, select the Record Collection Resource you just created. ![](https://media.help.cloudfiles.io/dg-insert-loop-sf/02.png) ### Step 3- Customize the Loop Content - The inserted loop will appear in the template with a placeholder section labeled "Click or tap here to enter text.” ![](https://media.help.cloudfiles.io/dg-insert-loop-sf/03.png) - Click the placeholder to select it, erase the placeholder text, and begin creating the content for the loop using fields from the selected Record Collection. Use the Insert Field action to add fields dynamically within the loop. ### Example: In the image below, the loop iterates over related Opportunities. Inside the loop, two fields — Name and Opportunity Id — have been inserted as dynamic text. ![](https://media.help.cloudfiles.io/dg-insert-loop-sf/04.png) ### Preview the Generated Document When the document is generated, the loop content will repeat for each record in the collection. Each iteration will populate the fields with data from a single record in the collection. Example Output: For an Account with two related Opportunities, the content inside the loop will repeat twice, once for each Opportunity. Generated Document Sample: ![](https://media.help.cloudfiles.io/dg-insert-loop-sf/05.png) Go to 4:36 to see the Insert Field action being used to create a sample receipt in Microsoft Word. [Watch video](https://youtu.be/yR75QbsCFc8?t=20) --- # Insert Condition (Guide · Salesforce) https://help.cloudfiles.io/salesforce/insert-condition # Insert Condition This action allows you to conditionally insert any content (text, table, picture) into the template. > Kind: Guide · Updated: Jul 4, 2026 This action allows you to conditionally insert any content (text, table, picture) into the template. Follow the steps below to insert a condition - - Select "Insert Condition" in the "Select Action" drop-down menu. - Select the content to be inserted based on the condition. - Set Up the Rules: - Add multiple rules using "+ Add condition". - Rule Parameters: - Field: Choose the field or variable whose value you want to evaluate. - Operator: Select an operator based on the data type of the resource. - Value: - Select an existing variable, constant, or field. - Manually enter a literal value or merge field. ![](https://media.help.cloudfiles.io/dg-insert-condition-sf/01.png) - Set Up the Rules: - Logic Between Rules: - AND: - All rules must be met. - OR: - Any rule must be met. - Custom: Custom rule logic. Provide the rule logic by entering characters: - Use numbers to refer to each rule. - Use AND, OR, or NOT to identify which combination of rules must be true. - Use parentheses to group parts of the string together. - Example: For - Insert the Condition: - Once the condition is set up, click "Insert" to apply the condition to the selected content. - If the condition evaluates to true, the content is inserted in the generated document; otherwise, it will not be inserted. Go to 4:12 to see the Insert Condition action being used to create a sample receipt in Microsoft Word. [Watch video](https://youtu.be/yR75QbsCFc8?t=20) --- # Insert Link (Guide · Salesforce) https://help.cloudfiles.io/salesforce/insert-link # Insert Link The Insert Link action adds a hyperlink to your document using a stored URL, with a custom label and dynamic updating if the URL is stored in a record. > Kind: Guide · Updated: Jul 4, 2026 The Insert Link action adds a hyperlink to your document using a stored URL. The link can have a custom label and dynamically update if the URL is stored in a record. - Select "Insert Link" - From the Select Action drop-down menu, choose Insert Link. - Add a Label - Enter a descriptive label for the link (e.g., "Company Website"). - This label will be displayed as the clickable text in the generated document. - Select the URL Source - Choose the field containing the website URL; if stored in a record, the link will dynamically update for different records. - Insert the Link - Click Insert to add the hyperlink to your document. - Adjust as Needed - Modify the placement, formatting, or text style to fit the document’s layout. ![](https://media.help.cloudfiles.io/dg-insert-link-sf/01.png) Go to 1:08 to see the Insert Link action being used to create a sample receipt in Microsoft Word. [Watch video](https://youtu.be/yR75QbsCFc8?t=20) --- # Document Title (Word · Salesforce) https://help.cloudfiles.io/salesforce/wDj0-document-title # Document Title Explains the Document Title action, which lets you set which generated-document field is used as the file's title. > Kind: Guide · Updated: Jul 4, 2026 This action allows you to assign a title to the documents generated from a given template. Follow the steps below to set a Document Title - - Select "Document Title" in the "Select Action" drop-down menu. - Choose a field to be set as the Document Title. - Click "Save" to set the selected field as the Document Title. The generated document will have this name. ![](https://media.help.cloudfiles.io/dg-document-title-sf/01.gif) --- # Insert Form Field (Guide · Salesforce) https://help.cloudfiles.io/salesforce/insert-form-field # Insert Form Field Insert Form Field lets you add a signature placeholder inside your Word document to mark where someone needs to sign when the document is sent using DocuSign. > Kind: Guide · Updated: Jul 4, 2026 Insert Form Field lets you add a signature placeholder inside your Word document. This shows where someone needs to sign when the document is sent using DocuSign. You can use this action with the CloudFiles Word Add-in to prepare documents for e-signature using Recipents. ## How to Insert a Form Field - In the Resources Panel, set the action to 'Insert Form Field'. - Set the Type to 'Signature' - Under Recipient, select the individual the signature should be assigned to. This list includes all recipients configured under the Recipients resource. - Click the location in your Word document where the signature should appear. - Press Insert. - A placeholder with the word "signature" will appear at the selected location. ![](https://media.help.cloudfiles.io/dg-insert-form-field-sf/01.png) These fields are non-editable placeholders in the generated document the actual signing happens in DocuSign. For more details, refer Sending Documents for Signature --- # Excel Template Actions (Guide · Salesforce) https://help.cloudfiles.io/salesforce/excel-template-actions # Excel Template Actions In the Actions section, you can customize document templates by inserting fields and tables, and setting document titles. > Kind: Guide · Updated: Jul 4, 2026 In the Actions section, you can customize your document templates using various operations. These actions allow you to insert fields, tables and set document titles based on your requirements. After setting up your resources, you can use the following actions to build your template: - Insert Field – Add standard or custom fields from the Master Object, or create and insert resources as needed. - Insert Table – Create and customize tables based on Salesforce records, adjusting structure and content as required. - Document Title – Assign a title to the generated document by selecting a relevant field for better organization. The video guides the user through the process of creating an Excel template for document generation in CloudFiles Doc Gen. It explains how to structure the template and map Salesforce record fields . [Watch video](https://youtu.be/U-KHEykEyY8) --- # Insert Field (Excel · Salesforce) https://help.cloudfiles.io/salesforce/XWOD-insert-field # Insert Field This action allows you to insert any field (standard or custom) retrieved from the Master Object, Record Variable, or Runtime Variable. > Kind: Guide · Updated: Jul 4, 2026 This action allows you to insert any field (standard or custom) retrieved from the Master Object, Record Variable, or Runtime Variable. To insert data from the following: - Master Object: The source record selected at the start, containing all its fields. - Record Variable: Holds a record and its field values, created by selecting an object type and setting conditions. - Runtime Variable: Stores a value for reuse or modification, using field or constant values with an optional default. ## Follow the steps below to insert a field: - Select Insert Field from the Select Action drop-down menu. - Choose the desired field from the drop-down menu. - Master Object fields are listed under "Record" (Global Variables). - Record Variables appear under "Variable". - Runtime Variables and constants are listed under "Global Constants". - Click Insert to place the field at the cursor's location in the work area. You can also copy and paste inserted fields as needed. ## Formatting Options: Text: You can choose to capitalize (first letter in uppercase), use lowercase, or uppercase for the text. ![](https://media.help.cloudfiles.io/dg-insert-field-2-sf/01.png) Font: All inserted fields can be formatted like regular text in Word, including changes to font, size, and style. Date Formatting: You can format dates as Short (08/23/2024), Medium (Aug 23 2024), Long (August 23, 2024), or Full (Friday, August 23, 2024). Number Formatting: For number fields (like int or double), you can apply custom formats: - # – shows digit only if present (e.g., ###,###.### → 1,234.56) - 0 – always shows digit, even if zero (e.g., 000,000.000 → 001,234.560) - , – thousands separator - . – decimal separator ![](https://media.help.cloudfiles.io/dg-insert-field-2-sf/02.png) Go to 0:29 to see the Insert Field action being used to create a sample file in Microsoft Excel. [Watch video](https://youtu.be/U-KHEykEyY8) --- # Insert Table (Excel · Salesforce) https://help.cloudfiles.io/salesforce/insert-table # Insert Table Learn how to insert a table into a Microsoft Excel template using data from a Salesforce Record Collection Variable Resource. > Kind: Guide · Updated: Jul 4, 2026 You can insert a table into a Microsoft Excel template using data from Salesforce records. These records are stored as a Collection Variable Resource, which allows you to retrieve and display structured data within the document. - Select the Action: - In the "Select Action" dropdown, choose "Insert Table." - Choose a Record Collection Variable: - In the "Resource Type" field, select a Record Collection Variable Resource. - Ensure that a resource is created before inserting the table. - Define Table Structure: - Set the resource type as a collection. - Select the desired number of columns in the Excel sheet, click "Insert" ,and a table will be created automatically without specifying the number of rows. - Insert Fields : - Rename the columns as needed and insert relevant fields into the table. - Sort Records : - You can control the order of records displayed in the table. - For example, to display orders in ascending order of amount, select the "Amount" field and set the order to Ascending. - Apply Filters and Limits: - Set filters to refine the records inserted into the table. - Limit the number of records displayed. - Define the order in which records appear. By following these steps, you can dynamically insert and manage tables in Salesforce based on record collections. > You can customize and format the table using standard Word formatting options, including font styles, alignment, borders, and shading. ![](https://media.help.cloudfiles.io/dg-insert-table-2-sf/01.png) Go to 0:50 to see the Insert Table action being used to create a sample file in Microsoft Excel. [Watch video](https://youtu.be/U-KHEykEyY8) --- # Document Title (Excel · Salesforce) https://help.cloudfiles.io/salesforce/document-title # Document Title This action allows you to assign a title to the documents generated from a given template. > Kind: Guide · Updated: Jul 4, 2026 This action allows you to assign a title to the documents generated from a given template. Follow the steps below to set a Document Title - - Select "Document Title" in the "Select Action" drop-down menu. - Choose a field to be set as the Document Title. - Click "Save" to set the selected field as the Document Title. The generated document will have this name. Go to 2:40 to see the Document Title action being used to create a sample file in Microsoft Excel. [Watch video](https://youtu.be/U-KHEykEyY8) --- # PDF Template Actions https://help.cloudfiles.io/salesforce/pdf-template-actions # PDF Template Actions The PDF Template Builder populates PDF forms with Salesforce data, letting you map text fields and checkboxes and add DocuSign signature fields. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction The PDF Template Builder is used to populate PDF forms with data from Salesforce. It allows you to map fields such as text inputs or checkboxes with values from Salesforce, and add form fields for document signing via DocuSign. You can upload any fillable PDF form (for example, a tax form or agreement), select the fields or checkboxes that need to be populated, and configure them using data from Salesforce. This setup supports Single, Collection, and Runtime Variables to handle different use cases like simple field inserts or dynamic values. Once configured, the PDF template can be published and used in flows or embedded in record widgets for document generation. ## Steps to create a PDF template - Go to the CloudFiles app in Salesforce and open the Document Generation tab. - Click Upload Template and select the PDF form you want to use. - Once uploaded, locate the template in the list. Click the menu icon (⋮) next to it and choose Edit. - In the side panel that opens, select the Salesforce object (Contact) this document is for and click Set Primary Record. - The PDF will now open in edit mode with four tabs on the right panel: Edit, Resources, Preview, and Publish. The template is now ready for configuration. Use the actions described below. ![](https://media.help.cloudfiles.io/dg-pdf-template-actions-sf/01.gif) ## Insert Field Use Insert Text when you need to place a Salesforce field value into a specific text area of the PDF. It is commonly used for fields like names, dates, addresses, or reference numbers that need to appear in the final generated document. You can select the target field directly from the PDF or from the field list in the bottom panel, then map it to any Salesforce field using the Field API Name selector. ## Insert Checkbox Use Insert Checkbox when you need to tick a checkbox or radio button in the PDF based on data from the Salesforce record. It is typically used for classification fields, consent indicators, or any yes/no selection that the PDF form requires to be pre-filled. You configure a condition against a Salesforce field value, and the checkbox is automatically marked when that condition is met during document generation. ## Form Field Use Insert Form Field when you need to place a signable field, such as a signature box or date signed, on the PDF for DocuSign recipients. Unlike Insert Text and Insert Checkbox which pull data from Salesforce, form fields are placeholders that the recipient fills in during the signing process. You select the field type, assign it to a recipient defined in your Resources, and position it anywhere on the PDF before publishing. ## Preview and Publish Once all fields have been mapped, navigate to the Preview tab and generate a preview using a valid Salesforce record to verify that the template is populated correctly. The Publish tab becomes available only after a successful preview is generated. After reviewing the output and confirming that all fields, checkboxes, and form fields are correctly configured, navigate to the Publish tab and click Publish. The template will then be available for use in CloudFiles Document Generation and Salesforce Flows. --- # Insert Field (PDF · Salesforce) https://help.cloudfiles.io/salesforce/insert-field # Insert Field Use the Insert Text action to map Salesforce field values into specific text fields in a PDF template so generated documents are auto-filled with record data. > Kind: Guide · Updated: Jul 4, 2026 Use the Insert Text action to map values from Salesforce into specific text fields in a PDF form. When the document is generated, those fields are filled with data from the Salesforce record. ## Steps to Insert a Field: - Navigate to the Document Generation tab in the CloudFiles app and open the PDF template in Edit mode using the menu (⋮) next to the template. - Click the + Insert Text button in the right panel. - Click on a text field area in the PDF, or select a field from the list in the bottom panel. The selected field will be highlighted. - In the Insert Field section that appears on the right, choose the Salesforce field from the Field API Name dropdown. - Optionally, select a Format to control how the value is displayed in the generated document. - Click Apply to map the field. A green dot will appear on the field to indicate it has been successfully mapped. ![](https://media.help.cloudfiles.io/dg-insert-field-3-sf/01.png) > **Use Case** — Let's say you need to generate a W-9 form for each Contact record in Salesforce. Instead of manually entering the contact's name, address, or tax details each time, you can set up the PDF template to automatically fill these fields using the Insert Text action.Steps:Upload the W-9 PDF as a new template in the Document Generation tab.Click the menu (⋮) next to the uploaded file and choose Edit.In the right panel, select Contact as the object and click Set Primary Record to open the PDF editor.Click + Insert Text, then click on Line 1 (under Name of entity/individual) and map it to Contact.Name.For Line 2, map a business or company name (e.g., Contact.Account.Name or a custom field).Insert address details into Lines 5 and 6 using: MailingStreetMailingCityMailingStateMailingPostalCodeAfter mapping all fields, click Publish to save the template. --- # Insert Checkbox https://help.cloudfiles.io/salesforce/insert-checkbox # Insert Checkbox Use the Insert Checkbox action to mark checkboxes or radio buttons in a PDF form based on conditions defined using Salesforce data. > Kind: Guide · Updated: Jul 4, 2026 Use the Insert Checkbox action to mark checkboxes or radio buttons in a PDF form based on conditions defined using Salesforce data. When the document is generated, the checkbox is ticked if the condition is met. You can also apply conditions using values returned from single resources, collections, or runtime variables in the template. ## Steps to Insert a Condition: - Navigate to the Document Generation tab in the CloudFiles app and open the PDF template in Edit mode using the menu (⋮) next to the template. - Click the + Insert Checkbox button in the right panel. - Click on a checkbox in the PDF that needs to be marked based on a condition, or select it from the field list in the bottom panel. - In the Insert Checkbox section that appears on the right, set the condition using a field from the Salesforce object. Example: Business_Type__c = C corporation - Click Apply. If the condition is true when the document is generated, the checkbox will be ticked. ![](https://media.help.cloudfiles.io/dg-insert-checkbox-sf/01.png) > **Use Case** — You are configuring a W-9 form for Contact records. Based on the value in a custom field like Business_Type__c, you want to automatically select the correct classification box, such as "C corporation," "LLC," or "Individual/sole proprietor."Steps:After inserting text fields with Insert Text, scroll to Line 3a of the W-9 form.Click + Insert Checkbox, then click on the checkbox next to "C corporation".Set the condition: Business_Type__c = C corporationDo the same for the remaining options: Individual/sole proprietor → Business_Type__c = IndividualS corporation → Business_Type__c = S corporationPartnership → Business_Type__c = PartnershipLLC → Business_Type__c = LLCTrust/estate → Business_Type__c = TrustOnce each checkbox is configured, click Publish. --- # Form Field https://help.cloudfiles.io/salesforce/form-field # Form Field Use the Form Field action to place signable Signature, Text, and Date Signed fields on a PDF for DocuSign recipients to fill in during signing. > Kind: Guide · Updated: Jul 4, 2026 Use the Form Field action to place signable fields on a PDF for DocuSign recipients. Unlike Insert Text and Insert Checkbox which pull data from Salesforce, form fields are interactive placeholders that the recipient fills in during the signing process. Supported field types include Signature, Text, and Date Signed. Before placing form fields, you must set up at least one Recipient in the Resources tab. The recipient defines who will receive the document for signing via DocuSign. ## Steps to Insert a Form Field: ### Step 1: Add a Recipient Resource - In the PDF editor, click the Resources tab in the right panel. - Click + Add or Manage Resources to open the Manage Resources dialog. - Click + Create New Resource and set the Resource Type to Recipient. - Fill in the following fields: - Label — A display name for this recipient (e.g., Sample Recipient Name). - API Name — Auto-populated based on the label (e.g., sample_recipient_name). - Type — Select Signer if this recipient needs to sign the document, or Carbon Copy if they should only receive a copy of the completed document without signing. - Name Field — The Salesforce field that holds the recipient's name, used by DocuSign for communication. - Email Field — The Salesforce field that holds the recipient's email address, used by DocuSign to send the signing request. - Click Add to save the recipient. ![](https://media.help.cloudfiles.io/dg-form-field-sf/01.png) > **Signing Order** — You can enable Signing Order in the Recipients section to control the sequence in which recipients receive the signing email. Once enabled, each recipient is assigned a number — recipients with a lower number receive the email first. To send the document to multiple recipients simultaneously, assign them the same number. You can reorder recipients by dragging and dropping or by editing the number directly. ### Step 2: Insert Form Fields - Go to the Edit tab and click + Form Field in the right panel. - Click anywhere on the PDF to place the form field at that location. - A sample field is inserted on the PDF. Its appearance will update based on the Field Type selected. - In the Insert Form Field panel on the right, configure the field: - Field Type — Choose from one of the following: - Signature — A box where the recipient signs the document. - Initial Here — A smaller field for the recipient to place their initials. - Text — A free-text field the recipient can type into. - Date Signed — Automatically captures the date on which the recipient signs. - Checkbox — A checkbox the recipient can tick during the signing process. - Recipient — Select the recipient this field is assigned to. - Click Apply to confirm. The field will be labeled with the field type and recipient name on the PDF. - Repeat for each additional field needed. You can move or remove any placed field as required. ![](https://media.help.cloudfiles.io/dg-form-field-sf/03.png) ### Step 3: Preview for Signing - Once all form fields are placed, click the Preview tab. - Enter a Salesforce Record ID to test the template with real data. - Click Generate Preview to generate the document. - Once the preview is generated successfully, click Send for Signing to dispatch the document to the recipient via DocuSign. - A confirmation message — Document sent for signing successfully — will appear once the document has been sent. ![](https://media.help.cloudfiles.io/dg-form-field-sf/04.png) > **Use Case** — You are generating a W-9 form for Account records and need the account representative to sign and date the document before it is submitted. You want the signature and date to be captured via DocuSign.Steps:In the Resources tab, create a Recipient resource with the account contact's name and email fields.On the last page of the W-9 (the Sign Here section), click + Form Field and place a Signature field for the recipient.Add a Date Signed field next to the signature box and assign it to the same recipient.Click Publish to save the template.When the document is generated — either manually through a flow action or automatically via an automation — it will be sent to the configured recipients for signature via DocuSign. --- # PPT Template Actions (Guide · Salesforce) https://help.cloudfiles.io/salesforce/ppt-template-actions # PPT Template Actions In the Actions section, you can customize your document templates using various operations to insert fields, pictures, and set document titles. > Kind: Guide · Updated: Jul 4, 2026 In the Actions section, you can customize your document templates using various operations. These actions allow you to insert fields, pictures, set document titles based on your requirements. After setting up your resources, you can use the following actions to build your template: - Insert Field – Add standard or custom fields from the Master Object, or create and insert resources as needed. - Insert Picture – Insert images from URL fields directly into your document template. - Document Title – Assign a title to the generated document by selecting a relevant field for better organization. ![](https://media.help.cloudfiles.io/dg-ppt-template-actions-sf/01.png) ![](https://media.help.cloudfiles.io/dg-ppt-template-actions-sf/02.png) --- # Insert Field (PPT · Salesforce) https://help.cloudfiles.io/salesforce/_ggs-insert-field # Insert Field This action allows you to insert any field (standard or custom) retrieved from the Master Object, Record Variable, or Runtime Variable. > Kind: Guide · Updated: Jul 4, 2026 This action allows you to insert any field (standard or custom) retrieved from the Master Object, Record Variable, or Runtime Variable. To insert data from the following: - Master Object: The source record selected at the start, containing all its fields. - Record Variable: Holds a record and its field values, created by selecting an object type and setting conditions. - Runtime Variable: Stores a value for reuse or modification, using field or constant values with an optional default. ## Follow the steps below to insert a field: - Select Insert Field from the Select Action drop-down menu. - Choose the desired field from the drop-down menu. - Master Object fields are listed under "Record" (Global Variables). - Record Variables appear under "Variable". - Runtime Variables and constants are listed under "Global Constants". - Click Insert to place the field at the cursor's location in the work area. You can also copy and paste inserted fields as needed. ## Formatting Options: Text: You can choose to capitalize (first letter in uppercase), use lowercase, or uppercase for the text. ![](https://media.help.cloudfiles.io/dg-insert-field-4-sf/01.png) Font: All inserted fields can be formatted like regular text in Word, including changes to font, size, and style. Date Formatting: You can format dates as Short (08/23/2024), Medium (Aug 23 2024), Long (August 23, 2024), or Full (Friday, August 23, 2024). Number Formatting: For number fields (like int or double), you can apply custom formats: - # – shows digit only if present (e.g., ###,###.### → 1,234.56) - 0 – always shows digit, even if zero (e.g., 000,000.000 → 001,234.560) - , – thousands separator - . – decimal separator ![](https://media.help.cloudfiles.io/dg-insert-field-4-sf/02.png) --- # Insert Picture (PPT · Salesforce) https://help.cloudfiles.io/salesforce/H2_s-insert-picture # Insert Picture This action enables you to insert a picture from either a URL field or a Salesforce Content Version ID. > Kind: Guide · Updated: Jul 4, 2026 This action enables you to insert a picture from either a URL field or a Salesforce Content Version ID. You can retrieve the image link or ID from a record field, a resource, or enter it manually. Follow the steps below to insert a picture: There are two ways to provide the image source: - Using a URL – Add a direct link to a public image. The link can come from a field in your records, a resource, or be entered manually. - Using a Salesforce Content Version ID – Use the unique ContentVersionId of an image stored in Salesforce. This allows you to insert images securely from your Salesforce library. ## Inserting an Image Using a URL - Select "Insert Picture" - From the Select Action drop-down menu, choose Insert Picture. - Choose the Picture Source - In the Picture Source drop-down, select URL. - Select the URL Field - In the URL drop-down, choose the field that contains the public link to the image. - This field can dynamically insert images based on URLs retrieved from record fields or other variable resources. - Insert the Image - Click Insert to place the image at the desired location. - Adjust the Image - Resize or reposition the image as needed. - Apply formatting options, such as adding a border, for a polished appearance. ![](https://media.help.cloudfiles.io/dg-insert-picture-2-sf/01.png) ## Inserting an Image Using a Salesforce Content Version ID - Select "Insert Picture" - From the Select Action drop-down menu, choose Insert Picture. - Choose the Picture Source - In the Picture Source drop-down, select Salesforce Content Version. - Select the Content Version ID Field - In the Salesforce Content Version ID drop-down, choose the field containing the ContentVersionId of the image you want to insert, or enter a static ContentVersionId. - Insert the Image - Click Insert to place the image at the desired location. - Adjust the Image - Resize or reposition the image as needed. - Apply formatting options, such as adding a border, for a polished appearance. ![](https://media.help.cloudfiles.io/dg-insert-picture-2-sf/02.png) --- # Features (Document Generation · Salesforce) https://help.cloudfiles.io/salesforce/pVNf-features # Features Overview of CloudFiles Document Generation for Salesforce, organized into five feature areas: the All-Format Designer, Dynamic Data Layer, Template Governance Hub, Dynamic Document Generation Engine, and Connected Ecosystem Layer. > Kind: Guide · Updated: Aug 8, 2026 CloudFiles Document Generation turns the data already sitting in your Salesforce org — records, related lists, files — into finished, professional documents: contracts, invoices, proposals, statements, and more. Everything happens natively inside Salesforce, so there's no exporting data to a separate document tool and no stitching together logins or spreadsheets to get a document out the door. Getting from a blank template to a signed, shared document follows one continuous path, and each feature area below is a stage in that path: you design templates in the tools your team already uses (All-Format Designer), connect them to live Salesforce data (Dynamic Data Layer), manage them centrally as they evolve (Template Governance Hub), generate documents on demand or at scale (Dynamic Document Generation Engine), and extend the finished output into e-signature, other Salesforce surfaces, and other systems (Connected Ecosystem Layer). ## All-Format Designer Every generated document starts as a template, and All-Format Designer lets your team build those templates inside the applications they already know — Microsoft Word, Excel, and PowerPoint, or Salesforce's own native PDF builder — instead of learning a new design tool. Because templates are built where your team already works, the layouts, tables, and brand styling your organization has already signed off on carry through untouched once Salesforce data is merged in. Learn more in the All-Format Designer guide. ## Dynamic Data Layer Once a template exists, it needs real Salesforce data behind it — that's the job of the Dynamic Data Layer. It reaches into any Salesforce object or related record, lets you control exactly what data goes into the document, and renders it so tables, conditional sections, and images adjust automatically to each record. The result is one template that produces an accurate, personalized document for every customer or case, instead of a separate template for every scenario. Learn more in the Dynamic Data Layer guide. ## Template Governance Hub As the number of templates grows, someone needs to keep them accurate and under control — that's what the Template Governance Hub is for. It's a central place to check a template before it goes live, track how it changes over time, and see how it's being used across the org, so admins always know what's live and can trust it. Learn more in the Template Governance Hub guide. ## Dynamic Document Generation Engine With a governed, data-connected template ready, the Dynamic Document Generation Engine is what actually produces the document — instantly for a single record, or in bulk across thousands of records at once. Every output can be secured and previewed immediately, and multiple files can be merged into a single package before it goes out. Learn more in the Dynamic Document Generation Engine guide. ## Connected Ecosystem Layer A generated document is rarely the end of the process, and the Connected Ecosystem Layer is what carries it forward — out for e-signature, into the Salesforce surfaces your team already works from, across other CloudFiles products, and into custom systems through APIs. Learn more in the Connected Ecosystem Layer guide. --- # All-Format Designer https://help.cloudfiles.io/salesforce/allformat-designer # All-Format Designer Explains All-Format Designer, which lets teams build CloudFiles document templates inside native Word, Excel, PowerPoint, and Salesforce's PDF builder. > Kind: Guide · Updated: Aug 8, 2026 CloudFiles All-Format Designer allows teams to build document generation templates directly within native Microsoft Office apps - Word, Excel, and PowerPoint and Salesforce’s native PDF template builder. Templates are designed to dynamically merge Salesforce object data at runtime, not edited after generation. By working inside familiar Office environments, users can define layouts, dynamic fields, and tables while preserving native formatting. This eliminates tool switching and ensures consistent, professional, and scalable document generation aligned with Salesforce workflows. ## Multi‑Format Add‑Ons The Multi-Format Designer Add-Ons put template design directly inside the tools your team already uses every day — Word, Excel, and PowerPoint through native Microsoft Office Add-Ins, plus Salesforce's own PDF form builder for reusing existing PDF forms. Because there's no new editor to learn, template authors keep working exactly the way they always have, while CloudFiles handles merging live Salesforce data in at generation time. Learn more in the Multi‑Format Add‑Ons guide. ![](https://media.help.cloudfiles.io/dg-all-format-designer-sf/01-resized-9c09784a.jpg) ## Formatting Controls Formatting Controls keep every generated document on-brand and easy to read, no matter how the underlying data looks. Fonts, spacing, tables, and layout stay exactly as designed, while values like currency, dates, and percentages are automatically rendered in clean, business-ready formats. The result is a document that looks polished and professional every time, without manual cleanup after generation. Learn more in the Formatting Controls guide. ![](https://media.help.cloudfiles.io/dg-all-format-designer-sf/formatting-controls-resized-f21fd1dc.png) ## Adding Custom Fonts For teams with brand-specific typography, Adding Custom Fonts makes sure a template's exact fonts carry through to the final generated document instead of being silently swapped out. Embedding a font in the Word template packages it with the file itself, so layouts, spacing, and special characters render precisely as designed — even when generating on a system that doesn't have that font installed. Learn more in the Adding Custom Fonts to your Templates guide. ![](https://media.help.cloudfiles.io/dg-all-format-designer-sf/adding-custom-fonts-resized-5111693e.png) --- # Multi‑Format Add‑Ons https://help.cloudfiles.io/salesforce/multiformat-addons # Multi‑Format Add‑Ons The Multi-Format Designer Add-Ons let teams design document templates directly inside Microsoft Office, Salesforce PDF forms, and soon Google Workspace, without leaving their familiar tools. > Kind: Guide · Updated: Jul 4, 2026 The Multi-Format Designer Add-Ons empower teams to design professional, data-driven document templates without changing how they work. By embedding CloudFiles directly into familiar tools, these add-ons eliminate friction between document design and data, helping organizations create accurate, on-brand documents faster and at scale. Instead of forcing users to learn a new template editor, CloudFiles meets teams where they already work: Microsoft Office, Salesforce, and soon Google Workspace, making document generation intuitive, efficient, and business-ready. ## Office Add-Ins CloudFiles provides native Microsoft Office Add-Ins for Word, Excel, and PowerPoint, enabling users to build DOCX, XLSX, and PPTX document generation templates directly within the applications they already use. Templates are designed inside familiar Microsoft Office tools, eliminating the need for a separate editor while preserving native layouts and formatting capabilities. Once the CloudFiles add-in is connected to Salesforce, users can embed Salesforce object data as dynamic fields within Word, Excel, and PowerPoint templates. Data is automatically merged at generation time, ensuring accurate, production-ready documents while maintaining native Office tables, charts, layouts, and styling. ![](https://media.help.cloudfiles.io/dg-multi-format-add-ons-sf/01.png) Why this matters - No learning curve: Business users work in familiar Office tools - Faster template creation: Reuse existing documents instead of rebuilding layouts - Live Salesforce data: Insert and control dynamic data directly in the document - Pixel-perfect output: Formatting, tables, and layouts remain intact With Office Add-Ins, teams can confidently design templates that look exactly the way they expect, without technical overhead or manual cleanup. Click here to How to Install CloudFiles Add-In. ## PDF Builder CloudFiles allows you to map Salesforce data directly to fields within uploaded PDF forms using Salesforce's native PDF capabilities. You can control how data is merged and generated—all within the CloudFiles app in Salesforce. Why this matters - Reuse existing PDF forms: No need to redesign or recreate documents - Fully Salesforce-native: Work entirely within Salesforce - No external tools required: Eliminate dependency on third-party PDF designers - Reliable, consistent output: Ideal for contracts, forms, and regulated documents This makes PDF template management simpler, more secure, and easier to maintain over time. ![](https://media.help.cloudfiles.io/dg-multi-format-add-ons-sf/02.gif) Click here to view how to set up a W-9 form template. ## Google Add-Ins (Upcoming) Google Workspace Add-Ons will extend CloudFiles template design capabilities to Google Docs, Sheets, and Slides. This upcoming feature is intended for teams that primarily work within Google Workspace and prefer not to switch authoring tools. Once available, it will allow templates to be designed in Google Workspace while using the same CloudFiles document generation engine. This ensures consistency across formats without changing existing workflows. --- # Formatting Controls https://help.cloudfiles.io/salesforce/formatting-controls # Formatting Controls The Multi-Format Designer Add-Ons let template authors design and maintain document templates directly inside Microsoft Office and Salesforce, preserving layouts, formatting, and structure across all supported output formats. > Kind: Guide · Updated: Jul 4, 2026 Build document templates using the tools your teams already use every day. The Multi-Format Designer Add-Ons allow template authors to design and maintain document templates directly inside familiar authoring environments, eliminating the need for new design tools or external editors. By working within Microsoft Office and Salesforce, teams can create reliable, data-driven templates while preserving layouts, formatting, and structure across all supported output formats. ## Style Preservation Style Preservation ensures that the visual structure of your templates remains intact across all generated outputs, including DOCX, XLSX, PPTX, and PDF. CloudFiles preserves fonts, font sizes, alignments, margins, spacing, graphics, layout grids, and custom font settings exactly as defined in the template. Even when dynamic or conditional data is injected, the document layout does not shift or break. This allows teams to design templates with confidence, knowing that every generated document will remain pixel-perfect and visually consistent with brand guidelines. ![](https://media.help.cloudfiles.io/dg-formatting-controls-sf/01.png) ## Data Formatting Data Formatting controls how individual values are rendered when Salesforce data is merged into documents. CloudFiles supports formatted insertion for currency, text case transformations, decimal precision, date and time formats (short, medium, long, or full), percentages, and number formats. These rules ensure that raw data is transformed into clean, readable, and business-ready values. As a result, documents look polished and consistent without requiring manual cleanup or post-generation edits. ![](https://media.help.cloudfiles.io/dg-formatting-controls-sf/02.png) ## Table Formatting Table Formatting ensures that structured data remains readable and well-organized when rendered inside tables. CloudFiles applies formatting rules within tables, supporting ordered and grouped outputs, text wrapping, and structured row rendering for collections. This makes it easy to generate tables from large or complex datasets while maintaining clarity and alignment. Whether rendering invoices, reports, or line-item details, tables remain clean, structured, and easy to understand. ![](https://media.help.cloudfiles.io/dg-formatting-controls-sf/03.png) ## Branding Tools Branding Tools allow organizations to consistently apply brand elements across all generated documents. CloudFiles supports logos, headers, footers, watermarks, stamps, and other standard branding components directly within templates. These elements are applied consistently during document generation, ensuring every output reflects the organization’s official branding. This helps teams deliver customer-ready documents that look professional, compliant, and officially branded, without manual intervention. ![](https://media.help.cloudfiles.io/dg-formatting-controls-sf/04.png) --- # Adding Custom Fonts to your Templates https://help.cloudfiles.io/salesforce/adding-custom-fonts-to-your-templates # Adding Custom Fonts to your Templates Embedding custom fonts in a Word (.docx) template ensures CloudFiles Document Generation preserves them exactly in the final generated PDF, avoiding font substitution, layout shifts, or mis-rendered characters. > Kind: Guide · Updated: Aug 8, 2026 ## Overview One of the benefits of CloudFiles Document Generation is the ability to use your own custom fonts in templates and preserve them perfectly in the final generated PDF. Whether you’re using brand-specific typography, special symbols, or non-standard fonts, embedding them ensures the final output retains exactly what you designed. Without embedding, the conversion process may substitute fonts, altering layout, spacing, or even mis-rendering characters. ## What Embedding Does When you embed a font in your Word (.docx) template, you’re packaging the font file within the document itself. That means when CloudFiles converts the DOCX to PDF, the original font is used—no fallback or substitution. Microsoft’s official guidance explains that embedding fonts helps when sharing documents with users or systems that might not have the same fonts installed, especially when converting to PDF. ## How to Embed a Custom Font in Your DOCX Template - Open your Word template and navigate to File → Options → Save. - Under the section Preserve fidelity when sharing this document, check Embed fonts in the file. You can then select whether to embed only characters used (reduces file size) or embed all characters (better if the file will be edited). - Ensure your template uses the custom font where needed. - Save the updated template (consider using a new filename so you keep your original version unchanged). - Upload or republish this template in CloudFiles Document Generation so it becomes your new active template. - Generate a test document from that template and verify in the resulting PDF that the custom font appears correctly—no substitution, spacing changes, or missing characters. For more details on how to embed fonts, you can refer to this help article from Microsoft - https://support.microsoft.com/en-gb/office/benefits-of-embedding-custom-fonts-cb3982aa-ea76-4323-b008-86670f222dbc#officeversion=windows ![](https://media.help.cloudfiles.io/dg-adding-custom-fonts-to-your-templates-sf/word-embed-fonts-options-84089da6.png) --- # Dynamic Data Layer https://help.cloudfiles.io/salesforce/dynamic-data-layer # Dynamic Data Layer Explains how CloudFiles Dynamic Data Layer pulls, models, and personalizes Salesforce data inside templates so documents auto-adapt to real customer data. > Kind: Guide · Updated: Aug 8, 2026 CloudFiles Dynamic Data Layer lets you pull, model, and personalize Salesforce data inside every template. It taps into any object or related data, shapes it with runtime variables and precision controls, and then renders it dynamically using tables, conditions, loops, images, and data-driven titles. The result is documents that auto-adapt to real customer data - accurate, contextual, and ready to generate at scale. The layer is organized into four parts: how data is accessed, how it's modeled and controlled, how it's rendered into content, and how real-time inputs personalize the final document. See the Doc Gen features overview for how this fits alongside the rest of CloudFiles Doc Gen. ## Universal Salesforce Data Access Universal Salesforce Data Access is what lets a template reach any data it needs, wherever that data actually lives in your org. It connects to standard and custom objects, every Salesforce field type, and related records across parent-child and lookup relationships, including multi-level paths. That means a single template can pull in complete customer context - not just the fields on one record - without any custom development. Learn more in the Universal Salesforce Data Access guide. ## Data Modelling Layer The Data Modelling Layer shapes and controls what data actually reaches a template before it's rendered. It lets you define reusable data resources, accept real-time values at the moment of generation, and apply filtering, sorting, and other precision controls so only clean, relevant data goes in. The result is documents built on consistent, well-governed inputs instead of raw, unfiltered records. Learn more in the Data Modelling Layer guide. ## Dynamic Content Builder The Dynamic Content Builder turns modeled Salesforce data into document content that adapts to what's actually in each record - auto-filling tables, showing or hiding sections, repeating content for collections, inserting images, and generating document titles automatically. Instead of maintaining separate templates for every scenario, one template produces the right output for every customer or case. Learn more in the Dynamic Content Builder guide. ## Real-Time Personalization Inputs Real-Time Personalization Inputs bring the final, last-mile details into a document at the exact moment it's generated - whether a user is filling them in directly from a List View or Record Page button, or a Screen Flow is passing them in as part of a guided, automated process. This keeps templates broadly reusable while still letting each generated document be finished with context that only exists at generation time. Learn more in the Real-Time Personalization Inputs guide. --- # Universal Salesforce Data Access https://help.cloudfiles.io/salesforce/universal-salesforce-data-access # Universal Salesforce Data Access Universal Salesforce Data Access lets templates connect to any standard or custom Salesforce object, pull related data across multi-level relationships, and insert every Salesforce field type exactly as stored. > Kind: Guide · Updated: Jul 30, 2026 Universal Salesforce Data Access is the foundation of the Dynamic Data Layer. It lets templates pull Salesforce data from anywhere - single records, custom objects, system variables, and multi-level relationships - so every generated document reflects live, accurate Salesforce information. Access any Salesforce object or field to power your document content, with no restrictions on where the data lives or how it is related. ## Any-Object Access CloudFiles lets templates fetch data from any standard or custom Salesforce object using Master Record variables and User variables. Use any Salesforce data source without limits - the template connects wherever your data lives. ## Field Compatibility CloudFiles supports all Salesforce field types when merging data into templates, so every field is inserted exactly as stored - no formatting workarounds, no field restrictions. Supported field types include: - String - Number - Currency - Date/Time - Boolean - Picklist - Rich Text ## Relationship Access Templates can pull related data across parent-child and lookup relationships, including multi-level relationship paths. This brings complete customer context into documents automatically, even across complex data models. ![Diagram showing Salesforce objects (Account, Contact, Opportunity, Order, Product, and custom objects) flowing through the Dynamic Data Layer into a generated Business Document.](https://media.help.cloudfiles.io/dg-universal-salesforce-data-access-sf/universal-salesforce-data-access-diagram.png) --- # Data Modelling Layer https://help.cloudfiles.io/salesforce/data-modelling-layer # Data Modelling Layer The Data Modelling Layer lets you define structured Salesforce data resources, accept real-time runtime variables, and apply precision controls that determine exactly what data flows into each generated document. > Kind: Guide · Updated: Jul 30, 2026 The Data Modelling Layer shapes and controls what data enters a template using resources, runtime values, and selection logic. Before any data is rendered into a document, it passes through this layer, which structures it into reusable resources, accepts real-time inputs, and applies precise selection rules. This is the preparation step between raw Salesforce data access and the dynamic content that ultimately appears in a generated document — turning any object or field into clean, controlled inputs a template can rely on. ## Data Resources CloudFiles lets you define Single-Record and Record-Collection resources as structured data inputs for templates. A Single-Record resource brings in one record's fields, while a Record-Collection resource brings in a related list of records, and both act as reusable data sources within the template builder. Shape data once and reuse it everywhere — defining resources this way gives every field, table, or loop in the template a clean, consistent input, so documents stay accurate no matter how many places a resource is used. ## Runtime Variables Runtime Variables accept real-time values during document generation, including single-value and multi-value inputs. Instead of hardcoding a value into the template, a Runtime Variable is filled in at the moment a document is created. Capture last-mile details instantly — Runtime Variables let a template reflect information that only exists at generation time, without ever needing to edit the template itself. ## Precision Data Controls Precision Data Controls apply filtering, sorting, grouping, row limits, and default values before data is inserted into a template, giving you exact control over which records and values make it into the final document. Control what appears in every document with precision — these controls produce cleaner outputs and remove the need for manual cleanup after generation. ![Diagram showing raw CRM records flowing through the Data Modelling Layer (Resources, Runtime, and Controls) into a generated Customer Summary document](https://media.help.cloudfiles.io/dg-data-modelling-layer-sf/data-modelling-layer-diagram.png) --- # Dynamic Content Builder https://help.cloudfiles.io/salesforce/dynamic-content-builder # Dynamic Content Builder The Dynamic Content Builder turns modeled Salesforce data into live document content — auto-filled tables, conditional sections, loops, images, and data-driven titles. > Kind: Guide · Updated: Jul 30, 2026 The Dynamic Content Builder is where modeled Salesforce data becomes live document content. Once resources, runtime variables, and precision data controls have shaped what data is available, the Dynamic Content Builder lets you show, hide, repeat, or populate that content dynamically based on real-time data. It covers five building blocks you can place directly on the template canvas: auto-fill tables, conditional blocks, loops, images, and dynamic document titles — each rendering differently depending on the record or runtime values behind it. ## Auto-Fill Tables Auto-Fill Tables auto-populate table rows from record collections or runtime collections with formatted data, so a single table definition expands to fit however many rows the underlying collection contains. This generates invoices, line items, schedules, or statements automatically with clean, consistent tables — no manual row-by-row entry. ## Conditional Blocks Conditional Blocks show or hide content based on logic applied to Salesforce data or runtime values. Wrapping any part of a template in a condition means only the sections relevant to a given customer or record appear in the final document, so every generated file stays personalized to its context. ## Loops Loops repeat paragraphs, rows, or sections for each item in a collection. This produces multi-record documents — like repeated line entries or per-record summaries — without copy-paste or manual duplication of content on the canvas. ## Images Images insert dynamically using URLs or Salesforce Files mapped through variables. This lets templates auto-place signatures, logos, photos, or proof documents directly from Salesforce data, rather than requiring images to be added by hand after generation. ## Dynamic Document Titles Dynamic Document Titles generate a document's title using Salesforce fields, relationship data, or runtime values instead of a fixed name. Every generated file is automatically named clearly and consistently, without manual effort, which keeps file organization and downstream automation predictable. ![Diagram of the Dynamic Content Builder component palette (Table, Condition, Loop, Image, Title) wired from CRM data into a live document preview](https://media.help.cloudfiles.io/dg-dynamic-content-builder-sf/dynamic-content-builder-diagram.png) --- # Real-Time Personalization Inputs https://help.cloudfiles.io/salesforce/real-time-personalization-inputs # Real-Time Personalization Inputs Real-Time Personalization Inputs let users and Screen Flows supply last-minute values that CloudFiles merges directly into a document at generation time. > Kind: Guide · Updated: Jul 30, 2026 Real-Time Personalization Inputs capture real-time values from users or flows to finalize each document in context. Instead of a template being limited to whatever data already lives on the record, CloudFiles can inject values supplied at the moment of generation - whether typed in by a user or passed along by a Screen Flow. This lets a single template stay flexible: the same document can be personalized differently every time it is generated, based on the last-mile details entered right before generation. ## Interactive User Inputs Interactive User Inputs let users personalize documents on the spot without editing templates. CloudFiles DocGen actions collect these runtime values directly from: - List View buttons - Record Page buttons Values entered through these actions are passed into the template and merged in at generation time, so the resulting document reflects exactly what the user provided in that moment. ## Flow-Driven Inputs Flow-Driven Inputs accept values from Screen Flows and pass them into templates during generation. This builds guided, automated document experiences powered by real-time flow data - a Screen Flow can walk a user through a series of steps, gather the required inputs, and hand them off to CloudFiles to merge into the document, all as part of the same guided process. ![Diagram showing a three-step flow: interactive input via a Generate Document form or Screen Flow, runtime values feeding a reusable template, and personalized proposal outputs for different recipients](https://media.help.cloudfiles.io/dg-real-time-personalization-inputs-sf/real-time-personalization-inputs-diagram.png) --- # Template Governance Hub https://help.cloudfiles.io/salesforce/template-governance-hub # Template Governance Hub Manage templates end-to-end with pre-publish validation, tag-based organization, version and release control, and usage/audit insights, then discover and reuse templates from a centralized Template Gallery. > Kind: Guide · Updated: Sep 1, 2026 The Template Governance Hub is CloudFiles' centralized control zone for managing your templates end-to-end. It combines pre-publish validation, tag-based organization, structured version & release management, and usage/audit visibility - so every template stays accurate, brand-safe, and reliably ready for automation. Use the Template Governance Hub to catch formatting and data issues before a template goes live, keep a clean, traceable version history as templates evolve, and give admins visibility into how templates are used across the org. Its Template Gallery gives teams a centralized library to browse, search, and reuse existing templates instead of rebuilding from scratch. For the broader picture of CloudFiles document generation, see the Document Generation overview. ## Template Management Hub The Template Management Hub lets you validate templates before publishing, organize a growing library with tags, manage versions and releases cleanly, and track usage for audits and reporting. Learn more in the Template Management Hub guide. - Pre-Publish Validation: Preview a template using real Salesforce record data and runtime variables, test conditional logic, and verify formatting before publishing - catching issues before anything goes live. - Template Organization: Classify and label templates with tags so a growing library stays structured, and let automations fetch just the templates carrying a given tag instead of every template published for an object. - Version & Release Control: Publish new templates, update existing ones, and maintain full version history so you always know what's live, without breaking existing automations. - Usage & Audit Insights: Track template generation activity and publishing changes, making the data available for audit trails and reporting on usage and ROI. ## Template Gallery The Template Gallery gives teams a centralized library to discover and reuse templates, with quick search and preview built in. Learn more in the Template Gallery guide. - Browse & Search Templates: Find the right template quickly by browsing or searching the centralized template library. - Preview & Reuse Templates: Preview a template before reusing it, so teams standardize on proven designs instead of rebuilding from scratch. --- # Template Management Hub https://help.cloudfiles.io/salesforce/template-management-hub # Template Management Hub The Template Management Hub validates templates before they publish, organizes a growing library with tags, keeps versions and releases under control, and tracks usage for audits and reporting. > Kind: Guide · Updated: Sep 1, 2026 The Template Management Hub is where templates are validated, published, and monitored end-to-end. It gives admins a centralized control zone to check a template before it goes live, keep a growing library organized, manage its versions and releases cleanly, and track how it is used once it is in production. Together, these controls keep every template accurate, brand-safe, and reliably ready for automation. ## Pre-Publish Validation Pre-Publish Validation lets you preview a template using real Salesforce record data and runtime variables, test its conditional logic, and verify formatting before publishing. Catching issues before anything goes live means every document generates right the first time. ## Template Organization Template Organization lets you classify and label templates with tags, so a growing library stays structured instead of relying on naming conventions. Automations can then fetch just the templates carrying a given tag, rather than every template published for an object. ## Version & Release Control Version & Release Control lets you publish new templates, update existing ones, maintain version history, and track template changes across releases. This keeps templates current without breaking automations, so every update stays controlled and traceable. ## Usage & Audit Insights Usage & Audit Insights tracks template generation activity and publishing changes, making that history available for audit trails and reporting. This makes it possible to see what's being used, what's working, and to prove ROI with clean reporting data. Part of the Template Governance Hub. ![Diagram of a template moving through Draft, Validated, Published, and Live & Monitored stages, alongside the Pre-Publish Validation, Version & Release History, and Usage & Audit Insights panels](https://media.help.cloudfiles.io/dg-template-management-hub-sf/block-9-18119235.png) --- # Template Gallery https://help.cloudfiles.io/salesforce/template-gallery # Template Gallery The Template Gallery gives you a centralized library of templates that you can search through quickly, preview, and reuse instead of building from scratch. > Kind: Guide · Updated: Jul 30, 2026 The Template Gallery is where you discover and reuse templates from a centralized library, with quick search and preview built in. It sits alongside the Template Management Hub inside the Template Governance Hub, giving you a fast way to find an existing template before building a new one from scratch. ## Browse & Search Templates Browse & Search Templates puts every template in a centralized library you can search through quickly, so you can locate the right template instead of starting from scratch each time. ## Preview & Reuse Templates Preview & Reuse Templates lets you preview a template from the gallery to confirm it's the right fit, then reuse it directly rather than rebuilding it. Part of the Template Governance Hub. ![The Template Gallery, showing the searchable template library with preview and reuse options](https://media.help.cloudfiles.io/dg-template-gallery-sf/block-7-ff877ac4.png) --- # Dynamic Document Generation Engine https://help.cloudfiles.io/salesforce/document-generation-engine # Dynamic Document Generation Engine Generate documents instantly or at scale from live Salesforce data, then apply security, preview, and merging controls to every output. > Kind: Guide · Updated: Jul 30, 2026 CloudFiles Dynamic Document Generation Engine creates documents in real time or through high-volume automations using dynamic Salesforce data. It applies post-generation controls and consolidates multiple files into one secure, ready-to-send package. The engine spans four areas — generating a single document on demand, generating documents in bulk through background processing, protecting and previewing documents right after they're created, and merging multiple files into one consolidated PDF. See the Document Generation features overview for how this engine fits alongside template design and data personalization. ## Instant & On-Demand Generation Generate documents instantly from Salesforce records, screen flows, or actions - delivering data-filled outputs on the spot with no delays. Learn more in the Instant & On-Demand Generation guide. - One-Click Record Generation: Trigger document creation directly from the CloudFiles widget on any Salesforce record for a quick, simple, Salesforce-native way to generate a polished document instantly. - Automated Generation (Flows & Apex): Create documents through Record-Triggered Flows, Screen Flows, or Apex actions using real-time data and runtime variables, adding live document creation into any Salesforce automation or guided process. ## Bulk & Background Generation Create hundreds or thousands of documents asynchronously using scalable background processing — ideal for statements, reports, invoices, and operational batches. Learn more in the Bulk & Background Generation guide. - Bulk Generation: Generate hundreds or thousands of documents asynchronously from list views, flows, or record collections, automating large-scale document runs in a single step without slowing down users. - Batch Processing: Executes document generation through distributed batch jobs that handle large data volumes efficiently without hitting Salesforce limits, ensuring reliable, high-performance document creation even at massive scale. ## Post-Generation Controls Apply security, access, retention, and preview rules immediately after documents are generated to keep them protected, compliant, and easy to review. Learn more in the Post-Generation Controls guide. - Security & Access Controls: Apply PDF security such as password protection, print/copy restrictions, and lock PDF, plus retention timers that control who can view or download a document after generation - enterprise-grade protection that keeps access strictly in your control. - Real-Time Preview & Download: Instantly returns a PreviewURL and DownloadURL for generated files, with expiration settings, access rules, and view-only modes, so users can review or retrieve documents immediately without delays. ## Unified Document Merging Combine multiple templates, PDFs, or external files into a single, consolidated document package. Learn more in the Unified Document Merging guide. - Unified Document Merging: Merges outputs from multiple templates, previously generated files, uploaded PDFs, or files stored in Salesforce or external systems (SharePoint, S3, Google Drive) into one consolidated PDF - creating complete, professional document packages such as proposals, contracts, and annexures that are ready to share. --- # Instant & On-Demand Generation https://help.cloudfiles.io/salesforce/instant-on-demand-generation # Instant & On-Demand Generation Instant & On-Demand Generation creates data-filled documents on the spot, either with a single click from a Salesforce record or automatically through Flows and Apex. > Kind: Guide · Updated: Jul 30, 2026 Instant & On-Demand Generation generates documents instantly from Salesforce records, screen flows, or actions — delivering data-filled outputs on the spot with no delays. This covers two ways to trigger that instant creation: a manual, one-click action taken directly on a record, and an automated trigger built into a Flow or Apex process. ## One-Click Record Generation One-Click Record Generation triggers document creation directly from the CloudFiles widget on any Salesforce record. Generate polished documents instantly — quick, simple, and Salesforce-native. ## Automated Generation (Flows & Apex) Automated Generation (Flows & Apex) creates documents through Record-Triggered Flows, Screen Flows, or Apex actions using real-time data and runtime variables. Add live document creation into any Salesforce automation or guided process. Part of the Dynamic Document Generation Engine. ![A one-click Generate button on a Salesforce account record feeding live record data and runtime variables into the generation engine, producing a finished Business Proposal document as DOCX or PDF; below it, a Record-Triggered Flow, Screen Flow, and Apex action trigger the same automated generation](https://media.help.cloudfiles.io/dg-instant-on-demand-generation-sf/block-9-e4ee0dee.png) --- # Bulk & Background Generation https://help.cloudfiles.io/salesforce/bulk-background-generation # Bulk & Background Generation Bulk & Background Generation creates hundreds or thousands of documents asynchronously through scalable background processing, ideal for statements, reports, invoices, and operational batches. > Kind: Guide · Updated: Jul 30, 2026 Bulk & Background Generation creates hundreds or thousands of documents asynchronously using scalable background processing — ideal for statements, reports, invoices, and operational batches. Instead of generating one document at a time, large runs are queued and processed in the background, freeing up users while CloudFiles handles the volume. This is the engine behind large-scale document runs, combining asynchronous generation from lists, flows, or record collections with distributed batch processing that scales to massive datasets without hitting Salesforce limits. ## Bulk Generation CloudFiles can generate hundreds or thousands of documents asynchronously from list views, flows, or record collections. Rather than triggering documents one record at a time, an entire set of records is submitted together and processed as a single bulk run. Automate large-scale document runs — statements, reports, invoices — in a single step without slowing down users. ## Batch Processing Document generation is executed through distributed batch jobs that handle large data volumes efficiently, without hitting Salesforce limits. Splitting work across batch jobs keeps large runs reliable even as record and data volumes grow. Ensure reliable, high-performance document creation even when working with massive datasets. Part of the Dynamic Document Generation Engine. ![A large record set submitted as one bulk run, split across distributed batch jobs, and processed in the background into hundreds of generated documents](https://media.help.cloudfiles.io/dg-bulk-background-generation-sf/block-9-8e85d8cf.png) --- # Post-Generation Controls https://help.cloudfiles.io/salesforce/post-generation-controls # Post-Generation Controls Post-Generation Controls apply security, access, retention, and preview rules immediately after documents are generated to keep them protected, compliant, and easy to review. > Kind: Guide · Updated: Jul 30, 2026 Post-Generation Controls apply security, access, retention, and preview rules immediately after a document is generated, keeping every output protected, compliant, and easy to review the moment it's created. Rather than treating generation as the final step, CloudFiles adds a layer of control right after the document is produced — locking it down, governing who can reach it, and making it instantly available for review or retrieval. ## Security & Access Controls Security & Access Controls apply PDF security such as password protection, print/copy restrictions, and locked PDFs, set retention timers, and control who can view or download a document after it's generated. Together these settings determine how a file is safeguarded and who is permitted to reach it once it exists. - PDF password protection - Print and copy restrictions - Lock PDF - Retention timers - Control over who can view or download the document Protect every generated document with enterprise-grade security and ensure access stays strictly in your control. ## Real-Time Preview & Download Real-Time Preview & Download instantly returns a PreviewURL and DownloadURL for generated files, with expiration settings, access rules, and view-only modes available for each. This gives every generated document an immediate, controllable point of access as soon as it's ready. - Instant PreviewURL and DownloadURL - Expiration settings - Access rules - View-only modes Let users review or retrieve documents immediately, securely and without delays, to keep workflows moving fast. Part of the Dynamic Document Generation Engine. ![A generated document locked down with PDF security and retention settings, alongside an instant PreviewURL and DownloadURL with expiration and view-only controls](https://media.help.cloudfiles.io/dg-post-generation-controls-sf/block-9-f070b18f.png) --- # Unified Document Merging https://help.cloudfiles.io/salesforce/unified-document-merging # Unified Document Merging Unified Document Merging combines outputs from multiple templates, previously generated files, uploaded PDFs, or externally stored files into a single, consolidated PDF package. > Kind: Guide · Updated: Jul 30, 2026 Unified Document Merging combines multiple templates, PDFs, or external files into a single, consolidated document package. Instead of sending several separate files after generation, CloudFiles lets you assemble everything into one ready-to-share PDF. This is the packaging step that follows document generation in the Dynamic Document Generation Engine - it pulls together outputs from multiple templates alongside previously generated files, uploaded PDFs, or files stored in Salesforce or connected external systems, and consolidates them into one file. ## Unified Document Merging Unified Document Merging merges outputs from multiple templates, previously generated files, uploaded PDFs, or files stored in Salesforce or external systems - including SharePoint, S3, and Google Drive - into a single consolidated PDF. Create complete, polished document packages - proposals, contracts, annexures, and supporting files - all combined into one professional, ready-to-share PDF. Part of the Dynamic Document Generation Engine. ![Multiple templates, previously generated files, uploaded PDFs, and files from SharePoint, S3, and Google Drive merging into one consolidated, ready-to-share PDF package](https://media.help.cloudfiles.io/dg-unified-document-merging-sf/block-6-abea2f92.png) --- # Generating Documents (Guide · Salesforce) https://help.cloudfiles.io/salesforce/generating-documents # Generating Documents Explains how to generate documents in Salesforce from published CloudFiles templates, either manually via the Doc-Gen LWC widget or automatically using CloudFiles Flow Actions. > Kind: Guide · Updated: Jul 4, 2026 Once you have published templates, you can use them to generate documents from records of the Master Object for which the template was created and published. You can access details of these published templates from the CloudFiles app in Salesforce. ## View Template List To view the template list and related details, follow these steps: - Go to the App Launcher in Salesforce. - From the App Launcher, select the CloudFiles app. - In the CloudFiles app, go to the 'Document Generation' tab. By following these steps, you can view the list of published templates and access their details, enabling you to generate documents from the relevant records in Salesforce. The following details are available for a published template record - - Template name - The name given to the template when published. - Source object - The Master Object for which the template is published. - Template Id - Unique ID assigned to each published template. - Version Number - The version number of the template. Below is how the published templates look like - ![](https://media.help.cloudfiles.io/dg-generating-documents-sf/01.png) The published templates will be available for document generation on the desired Salesforce Object. There are two ways to generate documents - - Manual generation by LWC - The CloudFiles Doc-Gen LWC can be easily added to any object's record detail page in Salesforce. Once added, this widget will display all the published templates related to that object. Users can then generate documents in either DOCX or PDF format, which will be automatically downloaded upon generation. - Automated Generation by flow actions - The CloudFiles Flow Actions can be utilized in flow builders to build to configure the automation of document generation. We will cover both the ways of Document generation one by one below - ## Manual Document Generation using CloudFiles Doc Gen LWC In order to generate documents by CloudFiles Doc-Gen LWC, you need to add the CloudFiles Doc-Gen widget to your desired record layout. You may refer to the Document Generation LWC to set-up the widget on your salesforce account in case, you have not added it yet. Once the set-up is done and widget is added, follow these steps to generate a document. - Navigate to the 'CloudFiles Doc-Gen LWC' on the object page. - Click the drop-down menu next to the template you want to use for generation. - Select 'Generate DOCX' or 'Generate PDF' for the desired document format. - The document generation process takes a moment. Once the document is generated, you can download it to your system or can click 'Copy to Salesforce Files' in order to upload the generated document as a Salesforce File and attach it to the record in the 'Files' section. Refer to the GIF below for visual understanding. ![](https://media.help.cloudfiles.io/dg-generating-documents-sf/02.gif) ## Automated Document Generation using Flow Actions - Overview The CloudFiles Flow Actions can be used in Salesforce Flow Builder to configure the automation of document generation. This method streamlines the process and ensures documents are generated based on specific triggers and criteria set in the flow. For example sake, here we are using 'Account' object to generate an automated document populated with required details according to template, whenever an Account record is created. To achieve this we will be using two flows as described below. The detailed steps are given in the next section ### Flow 1 - Record Triggered Flow To create the Automated Document Generation, we set up a record-triggered flow that activates when a record is created. We used the template ID of a published template to generate the document using the 'Generate Document' action of CloudFiles. This action creates a CloudFiles platform event, which is pushed into the event bus and triggers the next Platform Event - Triggered flow. Below is how this flow looks like - ![](https://media.help.cloudfiles.io/dg-generating-documents-sf/03.png) ### Flow 2 - Platform Event - Triggered Flow The next flow is triggered when a CloudFiles event of type 'document-generated' is published upon document generation in the first flow. After retrieving all the event details, the flow checks if the generated document belongs to the Account object. If it does, the content version details are fetched from the event data. Using these content version details, the template is populated with the relevant information, and the document is generated. Below is how the second flow looks like - ![](https://media.help.cloudfiles.io/dg-generating-documents-sf/04.png) ## Walkthrough Steps to Automate Document Generation Using Flow Actions Please refer the steps below to automatically generate and attach files to a Salesforce record using CloudFiles Doc Gen actions ### 1 - Create a Record Triggered Flow 1 - Navigate to Salesforce Setup. Find and select 'flows' from Quick Find Box. Click on 'New Flow'. 2 - Create a Record Triggered Flow for Account object, which will be triggered when an account record is created. Make sure this runs in an asynchronous path. 3 - Add the CloudFiles 'Document Generation' action to the flow with following input parameters. Leave rest of the configuration as is. Document Type - It is the file format in which you want to generate the document. This could be either pdf or docx according to your preference. Record ID - It is the record of a particular object for which we want to generate the document. In our case, it should be the record ID belonging to the Account object. Fill the field as Triggering Account > Account ID. Template - This is the ID of the already created template we want to use for this particular record to generate the document. To fetch and store the template ID, refer to the GIF below - ![](https://media.help.cloudfiles.io/dg-generating-documents-sf/05.gif) After filling in the necessary input parameters, your event configuration should look like this. Save and activate the flow once everything is complete. ![](https://media.help.cloudfiles.io/dg-generating-documents-sf/06.png) ### 2 - Create a Platform Event Triggered Flow A 'document-generated' type event will be published as a result of the action in the above flow, triggering this flow. Follow the steps below to set up the flow. 1 - Create a new 'Platform Event - Triggered Flow' type flow and choose Platform Event as 'CloudFiles Event'. 2 - The flow will be triggered for every CloudFiles Event published, but we want to run the flow actions only when a 'document-generated' type event occurs. To achieve this, we will add a decision element to the flow and create a path for 'Document Generated.' Set the following condition to identify the 'Document Generated' event and add the specified resource in the path. Triggering Event > Type Equals document-generated 3 - Add a Get Event Details action and set the input value for the Event parameter as {!$Record}. 4 - To check the object type on which the document is generated we will add a decision element and compare parentID of generated document with the right object. 5 - To get the 'Content Version' record of the generated document follow the steps below - Add a 'Get Records' element > Put object as 'Content Version' > Add a condition as Id Equals Outputs from Get Event Details > Document Generated > Content Version ID Below is how the decision element looks like - ![](https://media.help.cloudfiles.io/dg-generating-documents-sf/07.png) 6 - We now need to attach the generated document to the record. Follow the steps below - Add a 'Create Records' element > Select object as Content Document Link > Set the field values as: - ContentDocumentID ← Content Version from Get_Content_Version > ContentDocument ID > ContentDocument ID - LinkedEntityId ← Outputs from Get_Event_Details > DocumentGenerated > ParentId Below is how this decision element looks like - ![](https://media.help.cloudfiles.io/dg-generating-documents-sf/08.png) This is how you can set up the flows to auto generate documents using CloudFiles Doc Gen actions. To test the flows, please refer to the next section ### 3 - Test the automated document generation in action Create a new account record, and the activated flows will trigger, resulting in an automatically generated document being attached to the record. Refer to the GIF below to have a visual understanding of these steps - ![](https://media.help.cloudfiles.io/dg-generating-documents-sf/09.gif) This is how you can generate documents using CloudFiles Doc Gen, either manually or automatically. --- # Connected Ecosystem Layer https://help.cloudfiles.io/salesforce/connected-ecosystem-layer # Connected Ecosystem Layer Extend CloudFiles Document Generation beyond templates and generation into e-signature flows, deeper Salesforce experiences, other CloudFiles products, and custom systems via APIs and events. > Kind: Guide · Updated: Jul 30, 2026 The Connected Ecosystem Layer extends CloudFiles Document Generation beyond templates and generation, across your entire ecosystem — into e-sign flows, Salesforce integrations, CloudFiles products, and custom systems. Rather than stopping once a document is generated, this layer carries it forward — out to e-signature providers, into the Salesforce surfaces your users already work from (Experience Cloud, mobile, Field Service Lightning, Agentforce), across other CloudFiles products such as Document Management, Sharing, and Document AI, and out to any custom system through Apex, APIs, and events. See the Doc Gen features overview for how this fits alongside template design, data, governance, and generation. ## Integrated e-Signature Support Integrated e-Signature Support lets you prepare, send, sign, and store documents using your preferred e-signature provider — starting with DocuSign (live) and Adobe Sign (coming soon) — directly from Doc Gen workflows, without leaving Salesforce. Learn more in the e-Signature Support guide. - Multi-Provider Support — Supports DocuSign today, built on a pluggable provider framework so Adobe Sign and other e-signature systems can be added without architectural changes. - Template-Level Signature Fields — Add signature, initials, text, checkbox, and date fields directly inside DOCX/PDF templates using Insert Form Field, so documents come out signature-ready. Signature fields are configured at template design time — see All-Format Designer for building the underlying template. - Automated Recipient Assignment — Populate signer details dynamically through a Recipient Resource, using Salesforce fields, lookups, roles, or runtime inputs so documents route to the correct signers automatically. - End-to-End Signing Flow — Trigger signing from a widget, Flow, or Apex, track signing events (sent, viewed, completed), and auto-store signed documents to Salesforce Files or connected storage based on your destination rules. ## Deep Salesforce Integrations Deep Salesforce Integrations bring Doc Gen inside the Salesforce experiences your users already work from — Experience Cloud, Salesforce Mobile, field service apps, and AI-driven actions. Learn more in the Deep Salesforce Integrations guide. - Experience Cloud Support — Portal users can generate documents through widgets and flows with governed access, extending Doc Gen securely to partners and customers. - Salesforce Mobile Access — Doc Gen generation flows and outputs are supported inside Salesforce Mobile, so documents can be created and accessed anywhere, not just on desktop. - FSL Mobile Support — Field Service Lightning users can trigger document generation in the FSL mobile context, giving field teams real-time, job-linked documents on site. - Agentforce Actions — Doc Gen can be triggered via Agentforce/AI actions as part of a document workflow, letting AI kick off document generation automatically when needed. ## Cross-Product Compatibility Cross-Product Compatibility connects Doc Gen with CloudFiles Document Management, Document Sharing, and Document AI so teams can build complete, end-to-end document workflows. Learn more in the Cross-Product Compatibility guide. - Unified Document Management — Store generated documents in Salesforce or any connected external storage, even across multiple destinations, with foldering, metadata, tagging, versioning, retention, and record linking. - Analytics-Enabled Document Sharing — Send generated documents using CloudFiles Sharing links and track engagement inside Salesforce — views, downloads, time spent, and scroll analytics. - AI-Driven Document Processing — CloudFiles Document AI extracts structured data from incoming documents (KYC forms, invoices, contracts, and more) and feeds it into Doc Gen templates or Flows for automated document creation. - Multi-App Workflow Orchestration — Combine Document Management, Document Sharing, Document AI, and Doc Gen in the same Flow or Apex automation to build end-to-end document workflows: upload, extract, generate, and share, all inside Salesforce. ## API & Developer Extensibility API & Developer Extensibility lets you trigger, control, and scale document generation from code, integrations, or events, connecting Doc Gen to systems beyond Salesforce. Learn more in the API & Developer Extensibility guide. - Apex Actions — Trigger Doc Gen programmatically inside Salesforce through Apex and invocable actions, so developers can embed document generation into custom Salesforce logic. - REST APIs — Generate documents from external applications through authenticated API calls, connecting Doc Gen to ERPs, websites, or middleware without rework. - Event-Driven Triggers — Async and bulk generation is supported through platform events and callbacks, scaling high-volume generation smoothly without slowing operations. --- # e-Signature Support https://help.cloudfiles.io/salesforce/e-signature-support # e-Signature Support Send generated documents for electronic signature via DocuSign in Salesforce — recipients, signature fields, signing order, branding, and Date Signed / Text fields, for both Word and PDF templates. > Kind: Guide · Updated: Jul 26, 2026 ## Introduction CloudFiles lets you send generated documents for electronic signature without leaving Salesforce. Signing is provided through DocuSign and works for both Word and PDF templates. You connect DocuSign once under Document Generation → Integrations Tab, then set up signing on your template, and CloudFiles sends the document and returns the signed file to the record. ## Sending Documents for Signature You add one or more recipients and set each one's type, either a Signer who signs the document or a Carbon Copy who receives the completed copy without signing. You then place a signature field for each signer, set the order in which recipients are notified, and apply your own DocuSign branding to the signing email. See Sending Documents for Signature. ## Date Signed and Text Fields Alongside the signature, you can add two more field types to the document. A Date Signed field fills in the signing date automatically, and a Text field lets a signer enter custom text while signing. Each field is assigned to a recipient. See Date Signed and Text Fields. --- # Sending Documents for Signature https://help.cloudfiles.io/salesforce/docusign-integration-for-word-based-document-generation # Sending Documents for Signature The DocuSign integration feature enables you to automatically send generated documents for e-signature directly via DocuSign, using predefined signature fields and recipient mappings. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction The DocuSign integration feature enables you to automatically send generated documents for e-signature directly via DocuSign, using predefined signature fields and recipient mappings. This works in combination with three key additions to your document generation configuration - - Recipient Resource - This defines the recipient of the generated PDF. It includes the recipient's name, email, and any other necessary details. - Insert Form Field Action - This allows you to insert a signature field directly into the Word document template. It determines the position of the signature within the document and links it to a specific recipient. - Signing Settings - Control the order in which recipients are notified and the branding applied to the signing email. ## Prerequisite Before using this feature, ensure your DocuSign account is connected. Navigate to Salesforce → Document Generation → Integrations Tab and connect your DocuSign account. This step is mandatory for the integration to function. ![](https://media.help.cloudfiles.io/dg-docusign-integration-for-word-based-document-generation-sf/01.png) ## How to Use This Feature Follow these steps to configure recipients and signature fields - ### 1 - Create a Recipient Resource Start by adding a new recipient resource. This resource should include all relevant recipient details — especially the email address where the DocuSign request will be sent. Each recipient can be added as a Signer or as Carbon Copy. Carbon Copy recipients receive the signed document by email but are not prompted to sign. ![](https://media.help.cloudfiles.io/dg-docusign-integration-for-word-based-document-generation-sf/07.png) ### 2 - Insert a Form Field Action - Open your Word template in the document generation configuration. - From the Insert Form Field Action dropdown, select the Signature field type. - Choose the intended Recipient to whom this signature is assigned. This ensures that when the document is sent, the correct person receives the email and is prompted to sign. ![](https://media.help.cloudfiles.io/dg-docusign-integration-for-word-based-document-generation-sf/03.png) ### 3 - Visual Placement of Signature Field Once inserted, a placeholder form field with the word "signature" will appear in your document. This field marks the approximate location where the DocuSign signature box will appear. ![](https://media.help.cloudfiles.io/dg-docusign-integration-for-word-based-document-generation-sf/04.png) > The actual rendering may vary slightly, so we recommend testing a few documents to ensure the signature appears at the ideal spot. ### 4 - Configure Signing Settings (Optional) Signing settings apply to the recipients you created in step 1 and control how the signing request is sent. Both settings are optional. - Signing Order: By default, all recipients are notified at the same time. Enable signing order to notify them in sequence, then give each recipient a number. Recipients with a lower number are notified first, and recipients with a higher number are notified only after the earlier ones finish signing. Recipients who share the same number are notified together. For example, with A=1, B=1, C=10, D=100, recipients A and B are notified first, then C once they finish, then D. You can drag recipients into order or type a number for each. ![](https://media.help.cloudfiles.io/dg-docusign-integration-for-word-based-document-generation-sf/05.png) - Brand ID: Set the envelope Brand ID to apply DocuSign branding to the signing email. The brand controls the colors, logo, and email template your recipients see when they open the request. ![](https://media.help.cloudfiles.io/dg-docusign-integration-for-word-based-document-generation-sf/06.png) ### 5 - Triggering DocuSign When you generate a preview or finalize the document, a call is made to DocuSign. The system will: - Generate the PDF. - Send an email to the designated recipient with the PDF attached for signature. > You can assign signature fields to multiple recipients in the same document. --- # Date Signed and Text Fields https://help.cloudfiles.io/salesforce/docusign-field-integrations # Date Signed and Text Fields The DocuSign integration supports Date Signed and Text field types, expanding document signing capabilities beyond basic signatures to capture signing dates and collect custom text input. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction The DocuSign integration supports Date Signed and Text field types, expanding the document signing capabilities beyond basic signatures. These field types allow one to capture when documents were signed and collect custom text input during the signing process. This enhancement works with the existing DocuSign integration setup and includes: - Recipient Resource - This defines the recipient of the generated PDF. It includes the recipient's name and email. - Form Field Action - This inserts Date Signed and Text fields into your template and links them to a recipient. In Word templates, use the Insert Form Field action. In PDF templates, use the Form Field action. - Date Signed Field - Automatically captures and displays the signing date. - Text Field - Enables recipients to enter custom text during document signing. ## Prerequisites Before using these field types, ensure your DocuSign account is connected to CloudFiles. Navigate to Salesforce → Document Generation → Integrations Tab and connect your DocuSign account. This connection is required for all DocuSign field types to function properly. ![](https://media.help.cloudfiles.io/dg-docusign-field-integrations-sf/01.png) ## How to Use These Fields Follow these steps to add Date Signed and Text fields to your documents: ### 1 - Create a Recipient Resource Set up a recipient resource with all necessary details, including the email address where the DocuSign request will be sent. This recipient will interact with the new field types during signing. ![](https://media.help.cloudfiles.io/dg-docusign-field-integrations-sf/02.png) ### 2 - Insert Form Field Actions - Open your Word template in the document generation configuration. - From the Insert Form Field Action, you'll now see additional options: - Select Date Signed field type for automatic date capture - Select Text field type for custom text input - Choose the intended Recipient who will interact with this field during signing. - For PDF templates: use the Form Field action instead of Insert Form Field, then select the same Date Signed or Text field type and choose the recipient. The rest of the behavior is identical. See Form Field. ![](https://media.help.cloudfiles.io/dg-docusign-field-integrations-sf/03.png) ### 3 - Field Behavior During Signing - Date Signed Field: Automatically populated when the recipient signs the document in DocuSign, showing the exact signing timestamp. - Text Field: Presents an input box where recipients can enter custom text as part of the signing process. ### 4 - Visual Placement in Template Once inserted, placeholder form fields will appear in your document template: - Date Signed: Shows placeholder text indicating where the signing date will appear. ![](https://media.help.cloudfiles.io/dg-docusign-field-integrations-sf/04.png) > **Important** — The actual rendering in DocuSign may vary slightly from your template placement. We recommend testing different positions to ensure fields appear in optimal locations for your specific template layout. ## Additional Notes - You can use multiple Date Signed and Text fields in the same document - Each field must be assigned to a specific recipient - Assign these fields to Signer recipients. Carbon Copy recipients receive the completed document without signing, so they do not fill in fields. - After you add your fields, set the signing order and envelope brand in Signing Settings. See Sending Documents for Signature. - Recipient types and signing settings are envelope-level, so they apply the same way whether the template is Word or PDF. Since field placement can vary between your template and the final DocuSign rendering, test your document with different field positions to achieve the best user experience for your signers. --- # Deep Salesforce Integrations https://help.cloudfiles.io/salesforce/deep-salesforce-integrations # Deep Salesforce Integrations Deep Salesforce Integrations bring Doc Gen inside the Salesforce experiences your users already work from — Experience Cloud, Salesforce Mobile, Field Service Lightning, and Agentforce. > Kind: Guide · Updated: Jul 30, 2026 Deep Salesforce Integrations bring Doc Gen into the everyday Salesforce surfaces your users already work from — extending document generation beyond standard record pages and into Experience Cloud portals, the Salesforce Mobile app, the Field Service Lightning mobile context, and Agentforce AI actions. Instead of confining generation to a desktop record page, these integrations let a document be created wherever the work happens — by a portal partner, a rep on the move, a technician on a job site, or an AI agent acting on its own. ## Experience Cloud Support Experience Cloud Support lets portal users generate documents through widgets or Flows, with the same governed access controls that apply everywhere else in CloudFiles. Extend Doc Gen securely to partners and customers — portal users get document generation without needing internal Salesforce access. ## Salesforce Mobile Access Salesforce Mobile Access supports Doc Gen generation flows and outputs directly inside the Salesforce Mobile app. Create and access documents anywhere, not just on desktop — mobile support keeps generation available wherever a user is working. ## FSL Mobile Support FSL Mobile Support lets Field Service Lightning users trigger document generation directly from the FSL mobile context. Empower field teams with real-time, job-linked documents on site — technicians can produce the documents a job requires without leaving the field app. ## Agentforce Actions Agentforce Actions allow Doc Gen to be triggered via Agentforce and other AI actions as part of a document workflow. Let AI kick off document workflows automatically when needed — Agentforce can initiate generation as a step in a larger, autonomous process. Part of the Connected Ecosystem Layer. --- # Cross-Product Compatibility https://help.cloudfiles.io/salesforce/cross-product-compatibility # Cross-Product Compatibility Cross-Product Compatibility connects DocGen with CloudFiles Doc Management, Sharing, and Doc AI so storage, distribution, extraction, and generation work together as one document workflow. > Kind: Guide · Updated: Jul 30, 2026 Cross-Product Compatibility uses DocGen together with CloudFiles Doc Management, Sharing, and Doc AI for complete document workflows. Rather than treating generation as an isolated step, this sub-feature connects what DocGen produces to where documents are stored, how they are shared and tracked, and how incoming documents are turned into new data. The result is a single connected document lifecycle inside Salesforce: documents are stored and managed consistently, shared with visibility into recipient engagement, generated automatically from data extracted out of other documents, and orchestrated end-to-end across all four CloudFiles products in one Flow or Apex automation. ## Unified Document Management Generated documents can be stored in Salesforce or any connected external storage system - even across multiple destinations at once - with advanced management features layered on top, including: - Foldering - Metadata - Tagging - Versioning - Retention - Record linking Keep every generated document organized, compliant, and easy to access, whether it is stored in Salesforce or any connected external system. ## Analytics-Enabled Document Sharing Generated documents can be sent using CloudFiles Sharing links, with engagement tracking captured inside Salesforce, including: - Views - Downloads - Time spent - Scroll analytics See exactly how recipients interact with your documents, helping teams prioritize follow-ups and improve sales effectiveness. ## AI-Driven Document Processing CloudFiles Document AI extracts structured data from incoming documents - such as KYC forms, invoices, and contracts - and feeds that data into DocGen templates or Flows for automated document creation. Turn incoming documents into structured data that can instantly generate new records or documents, reducing manual work and speeding up processes. ## Multi-App Workflow Orchestration Doc Management, Doc Sharing, Doc AI, and DocGen can be combined in the same Flow or Apex automation to create end-to-end document workflows: upload → extract → generate → share, all inside Salesforce. Build powerful, multi-step document workflows entirely inside Salesforce, without stitching products together manually. Part of the Connected Ecosystem Layer. --- # API & Developer Extensibility https://help.cloudfiles.io/salesforce/api-developer-extensibility # API & Developer Extensibility API & Developer Extensibility lets developers trigger, control, and scale CloudFiles document generation from Apex, external applications, and platform events. > Kind: Guide · Updated: Jul 30, 2026 API & Developer Extensibility lets you trigger, control, and scale document generation from code, integrations, or events, instead of relying only on manual, in-app actions. This gives developers a programmatic path into CloudFiles Document Generation, whether the trigger comes from inside Salesforce, from an external application, or from an asynchronous platform event. ## Apex Actions Apex Actions trigger DocGen programmatically inside Salesforce through Apex or invocable actions, so document generation can be embedded into custom Salesforce logic seamlessly. ## REST APIs REST APIs generate documents from external apps through authenticated API calls, connecting DocGen to ERPs, websites, or middleware without rework. ## Event-Driven Triggers Event-Driven Triggers support async and bulk generation using platform events and callbacks, scaling high-volume document generation smoothly without slowing operations. Part of the Connected Ecosystem Layer. --- # Document Generation Tutorials https://help.cloudfiles.io/salesforce/document-generation-tutorials # Document Generation Tutorials Landing page for the Document Generation tutorials category, linking to guides on building Word templates and generating, automating, and securing documents in CloudFiles. > Kind: Tutorial · Updated: Jul 4, 2026 Welcome to the Document Generation tutorials category. This section contains a collection of step-by-step guides to help you get the most out of CloudFiles’ document generation features. Browse through the list below to get started - - Build a template (Word) - In this tutorial, we’ll show you how to create templates in Microsoft Word using CloudFiles Document Generation and Salesforce data. - Generate a document manually - In this tutorial, we’ll configure the Doc-Gen widget in Salesforce to generate documents from predefined templates. As an example, we’ll demonstrate how users can add the widget to a record page and manually generate Word, Excel, PowerPoint, or PDF files directly from Salesforce records. - Generate a document via automation - In this tutorial, we’ll show you how to set up a Salesforce record-triggered flow with CloudFiles to automatically generate documents when specific conditions are met. This allows documents to be created instantly based on record updates, saving time and reducing manual effort. - Generate a document via Screen Flow - In this tutorial, we’ll show you how to use a Salesforce Screen Flow with CloudFiles to generate documents as part of a guided process. You’ll learn how to batch-generate multiple documents at once, making it easier to create all required files in a single flow. - Generate a document via Permissioned Templates - In this tutorial, we’ll show you how to build a Salesforce Screen Flow that shows a CloudFiles DocGen template only to the users who are allowed to use it, by registering templates against a Custom Permission and gating them with a Permission Set. Every other user simply never sees the restricted template in the list. - Generate a document with runtime variables - This tutorial shows how to generate a purchase order using Screen Flow with runtime variables. You’ll learn to create a template, configure variables for user input, and generate dynamic documents that combine Salesforce data with user-entered details using the Generate Document (Sync) action. - Merge documents - This tutorial explains how to merge multiple files - PDFs, DOCX, PNG, or JPEG into a single PDF using the Merge Documents (Sync) action. - Secure PDF - In this tutorial, you’ll learn how to keep your PDF documents safe and protected. We’ll explore how to apply security options while generating via automation. --- # Build a template (Word) https://help.cloudfiles.io/salesforce/build-a-template-word # Build a template (Word) This guide explains how to create a purchase order template using CloudFiles Document Generation with the Salesforce add-in for Microsoft Word. > Kind: Tutorial · Updated: Jul 4, 2026 This guide explains how to create a template using CloudFiles Document Generation. The CloudFiles add-in feature allows you to build templates in Microsoft Word (DOCX) using Salesforce data. For this tutorial, we will use the Order object to create a sample purchase order template. You will learn how to use the Insert Field, Insert Image, Insert Table, and Insert Condition actions to generate documents with data from Salesforce records. ## What to Expect By the end of this tutorial, you will know how to: - Create a DOCX template with fields mapped from Salesforce - Insert text, image, and table elements into a DOCX template - Use conditions to show or hide content based on logic - Preview and publishing document to Salesforce ## Tutorial Video Refer to the quick video if you would like to have a visual guide for this tutorial. Read on if you prefer textual content. > Video will be added soon ## Pre-requisites ### Install CloudFiles in Salesforce CloudFiles Document Generation app is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation guide to know more. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/01.png) ### Template Builder Setup The CloudFiles add-in connects with your Salesforce Org to enable template creation using Salesforce data. It can be installed in Microsoft Word, Excel, or PowerPoint, allowing you to design templates directly. For installation steps, see Template Builder Setup. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/02.png) ## Stages of Document Generation Document Generation includes 3 main stages: - Build - Preview - Publish After logging in to Salesforce through the CloudFiles add-in, set Salesforce as the platform and select the Order object. In this tutorial, we will use the Order object to create a sample Purchase Order template. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/03.png) > Why use a Purchase Order Template?A purchase order is a common document used to confirm and track product or service purchases. It generally includes the order number, account information, shipping and billing details, and a list of items.In this tutorial, we use the Order object in Salesforce, which contains all the required details for generating the document. For item-level information, we use the OrderItem object, which holds product names, quantities, prices, and totals used to populate tables in the template. We have created a sample purchase order template with placeholder fields for reference (see screenshot below). In the Build stage, we will show how to use each action: Insert Field, Insert Image, Insert Table, Insert Link, and Insert Condition, to replace those placeholders with actual merge fields from Salesforce. After installing the CloudFiles add-in and setting up Salesforce, you can use the template actions to insert fields and tables from Salesforce data into the document. ### Stage 1 - Build 1 - Global variable When building templates, you work with global variables that help you pull in Salesforce data. The most common one is $Record, which refers to the record you're generating the document for — for example, an Order in this case. Using this, you can easily bring in fields like OrderNumber, EffectiveDate, and related account fields. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/05.png) Alongside this, there's also the $User variable. This refers to the Salesforce user who is generating the document. If you're using the document generation widget inside Salesforce, $user will correspond to whoever is running that action. In flows, it picks up the user who is in context at the time — so in a screen flow, it's the person interacting with the flow, and in a record-triggered flow, it's the person who made the record changes. This means you can insert fields not just about the record itself, but also about the user generating the document, such as their name or email address. 2 - Insert Field Insert the following fields into the purchase order template: - OrderDate – {{!$Record.EffectiveDate}} - OrderNo – {{!$Record.OrderNumber}} - AccName – {{!$Record.Account.Name}} - BillingStreet – {{!$Record.Account.BillingStreet}} You can similarly insert other fields such as BillingCity, ShippingStreet, ShippingCity, etc. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/06.png) Additionally, you can insert fields from other related object records, such as Contract, by creating a Record Single Variable resource and then using template actions to reference and insert those fields into your document. > **Note** — Note: Ensure that the Integration User has the necessary permissions to access the fields being inserted. If the required access is missing, the fields will not be available for use in the template. 3 - Insert Picture Use Insert Picture action to add an image to the template. This is ideally used for company logos, product images, etc. Place the cursor where the image should appear in the document, then select the Insert Picture action. Choose a field that contains a valid image URL, such as a logo URL stored in the Account record. You can also adjust the size of the image. In the purchase order template, insert the custom field Company_Logo__c from the Account object, which holds the image URL. - Image - {!$Record.Account.Company_Logo__c} ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/07.png) 4 - Insert Link Use Insert Link to add clickable URLs from Salesforce fields into your template. In the purchase order template, insert the field Website from the Account object, which holds the URL of the website. - Website – {{$Record.Account.Website}} This will generate a working hyperlink in the final generated document. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/08.png) 5 - Insert Table Use Insert Table action to include repeatable rows for lists, such as line items or products. Before adding a table, create a Record Collection Variable with object set to 'Order Product' which is typically used to represent the line items associated with the order (e.g., products purchased, quantities, and pricing)and add filter Criteria as below. - Order ID Equals {!$Record.Id} ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/09.png) Now, the record collection OrderItems contains the products of the order. To configure the table, follow the steps below: - Place the cursor on the template and select the Insert table action. - In the Resource Type field, select the collection OrderItems you created. - Specify the required number of columns and rows. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/10.png) - Add column labels for Item, Quantity, Unit Price, and Subtotal in the first row. - Place the cursor on the second row and use the , then click 'Make Data Row' to include the values of the collection. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/11.png) - Insert the following into the table from the collection OrderItems using the Insert Field action. - Product Name - {!order_items.Product2.Name} - Quantity - {!order_items.Quantity} - Unit Price - {!order_items.UnitPrice} - Total Price - {!order_items.TotalPrice} You can insert multiple fields into the same cell. Make sure you insert all the collection fields inside the data row. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/12.png) 6 - Insert Condition Use Insert Condition to show or hide sections based on values from your record. In the purchase order template, let's display a message only when the Total Order Amount exceeds $10,000 Steps to Insert a Condition: - Place the cursor where you want the conditional content to appear. - Open the CloudFiles Add-in and choose Insert Condition. - In the Field dropdown, select the relevant field (e.g., TotalAmount or Order Total). - Set the Operator (e.g., Greater Than) and enter the Value (e.g., 10000). - Click Insert - Add the message inside If> to display if the condition is met. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/13.png) 7 - Document Title Use Document Title action to define the name for your generated document. This title will be automatically applied when the document is generated. You can use values from records and other resources to create dynamic file names. In the template, we have used {!$Record.OrderNumber}to set the document title dynamically based on the order number. If no Document Title is specified, the document will default to the name of the template. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/14.png) Global constants Global constants are predefined values that remain the same for every document. By default, the template includes: - $GlobalConstant.EmptyString – blank text value - $GlobalConstant.False – boolean false - $GlobalConstant.True – boolean true These constants can be used to add fixed values or control logic. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/15.png) ### Stage 2 - Preview The Preview feature allows you to test how your document will look using real data before publishing it. How It Works: - Enter a valid Record ID (e.g., a Salesforce Order ID) into the input box. - Click Generate Preview. - CloudFiles will populate the template with actual values from the record, showing you exactly how the final document will appear. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/16.png) > Errors at Preview:In the Preview section, if the template has any issues, you may encounter errors, such as 'Preview generation failed,' along with a description of the error.These errors typically indicate problems like malformed queries, etc. Make sure to review the error message and correct the issue accordingly before publishing. ### Stage 3 - Publish Once you've finished building and previewing your template, use the Publish step to save it for use in your Salesforce org. Publishing Options: 1 - Publish as a New Template - Choose this if you're creating a template from scratch. - Enter a unique Template Name in the input field. - This will create a new version that will be available for use. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/18.png) 2 - Select an Existing Template - Choose this option to update or replace a previously published template. - Select from the list of available templates in the dropdown. - Your current design will overwrite the selected template with the new version. ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/19.png) Once published, the template will be listed under the Document Generation tab →DocGen Templates. The Template Id can be used in Flow automation to generate documents using the following flow actions: Generate Document, Generate Document (Sync), Generate Document (Batch). ![](https://media.help.cloudfiles.io/tut-build-a-template-word-sf/20.png) --- # Generate a document manually https://help.cloudfiles.io/salesforce/generate-a-document-manually # Generate a document manually The Doc-Gen widget allows users to manually generate documents (Word, excel, ppt, pdf) from any Salesforce record page using predefined templates. > Kind: Tutorial · Updated: Jul 4, 2026 The Doc-Gen widget allows users to manually generate documents (Word, excel, ppt, pdf) from any Salesforce record page using predefined templates. Once you create and publish a template using the Build a template (Word) tutorial, you can manually generate documents via a record. To do so, you must add the Doc-Gen widget to the record page. This guide explains how to set up the widget and use it to generate documents. ## What to Expect By the end of this tutorial, you will know how to: - Add the Doc-Gen widget to a Lightning record page - Generate documents manually from a record - Use the available options after a document is generated ## Tutorial Video Refer to the quick video if you would like to have a visual guide for this tutorial. Read on if you prefer textual content. > Video will be added soon ## Pre-requisites ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation and Configuration guides to set up your account and user access. ![](https://media.help.cloudfiles.io/tut-generate-a-document-manually-sf/01.png) ### Doc-Gen Templates Ensure that the templates published for the object are listed under the Document Generation tab → DocGen Templates. ![](https://media.help.cloudfiles.io/tut-generate-a-document-manually-sf/02.png) ## Add the Widget to Record Page - In Salesforce, go to Lightning App Builder for the record type (e.g., Order). - From the Components list, find and drag CloudFiles Doc-Gen into the page layout. - Click Save, and activate the layout if needed. The GIF below shows how to add the CloudFiles Doc-Gen widget to the record page ![](https://media.help.cloudfiles.io/tut-generate-a-document-manually-sf/03.gif) Once the widget is added to the record page, the record will automatically display the published templates available for that object within the widget. ![](https://media.help.cloudfiles.io/tut-generate-a-document-manually-sf/04.png) ## Test the setup - Navigate to a record where the CloudFiles Doc-Gen widget has been added. - In the widget, you'll see all published templates available for that object. - Click the Generate (dropdown) next to the template. - If the template contains required runtime variables, the menu displays Generate Docx (fill required fields) or Generate PDF (fill required fields). - If prompted, enter the required values in the Fill in Document Details dialog and click Generate Document. - After the document is generated, use one of the available actions: - Download – Downloads the generated document to your computer. - Preview – Opens the generated document inline within Salesforce. - Copy to Salesforce Files – Saves the generated document as a Salesforce File related to the current record. - Copy to External Storage – Copies the generated document to a connected CloudFiles library (such as SharePoint, OneDrive, or Google Drive). Browse the available folders and select the destination without leaving Salesforce. - Send for e-Signature – Sends the generated document for e-signature directly from the CloudFiles Doc-Gen widget. > **Note** — Note: Copy to External Storage is only available to users with the fileUpload custom permission and is not supported when Service Account Authentication is enabled for the org. The GIF below shows how to manually generate a document and copy it to Salesforce attachments. ![](https://media.help.cloudfiles.io/tut-generate-a-document-manually-sf/05.gif) --- # Generate a document via automation https://help.cloudfiles.io/salesforce/generate-a-document-via-automation # Generate a document via automation Learn how to automatically generate a document when a Salesforce record meets specific criteria by configuring a record-triggered flow with the Generate Document action. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, you’ll learn how to automatically generate a document when a Salesforce record meets specific criteria, such as when a field is updated using a record-triggered flow. After creating and publishing a template (see the Build a template (Word) tutorial), you can configure Salesforce flow to generate documents automatically whenever the defined trigger condition is met. ## What to Expect By the end of this tutorial, you will know how to: - Set up a record-triggered flow in Salesforce to automate document generation. - Optionally define a destination for storing the generated document. - Add and configure the Generate Document action in the flow. - Test and validate that documents are generated automatically when a record is updated. ## Tutorial Video Refer to the quick video if you would like to have a visual guide for this tutorial. Read on if you prefer textual content. > Video will be added soon ## Prerequisites ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation and Configuration guides to set up your account and user access. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/01.png) ### Doc-Gen Templates Ensure that the templates published for the object are listed under the Document Generation tab → DocGen Templates. Locate the Template Id for the template you want to use and note it down, as you’ll need it as an input in your flow action. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/02.png) ## Building the Flow ### 1 - Create a Record-Triggered Flow Since we’re using a Purchase Order template that is published for the Order object, set the Order object as the trigger for the flow. Use the Status field as the triggering criterion, so the document generation starts automatically whenever an order’s status changes to Purchased. This is how the final flow looks like - ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/03.png) The details of the flow are given below - - Navigate to Setup → Flows in Salesforce. - Click New Flow → Select Record-Triggered Flow. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/04.png) - Set the Object to Order. - Define the triggering criteria when Status is marked as Purchased. - Select Optimize Flow as Actions and Related Records. - Add Asynchronous Path. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/05.png) ### 2 - Adding Destination (Optional) The Generate Document flow action requires destination parameters if you want to attach the generated document to a specific Salesforce record or store it in external storage. Let's store the document in the Notes & Attachments section of the Order record. If you don’t define a destination, the generated document will be stored by default in the Salesforce Content Library. Steps to Configure Destination: - Create an Apex-Defined Variable of Apex Class cldfs__Resource ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/06.png) - To Save in Order's Notes & Attachments, - Assign the following fields: - Library: Set to salesforce. - Id: Set to the Record Id of the Order record ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/07.png) > To Store in External Storage such as SharePoint, GDrive, etcWhen using CloudFiles with the CloudFiles | Document Management & Sharing Platform:Assign the following fields to define the external storage location:Library: Specify the library name.Drive Id: Specify the Id of the connected drive.Id: Specify the Id of the folder or location within the drive. You can assign the above fields either manually (by referring to the Metadata details from Content Library) or by using the Get Connected Folder action to populate the fields from the action output. ### 3 - Add the 'Generate Document' Action - In the flow, click + and select Action. - Search for and choose CloudFiles: Generate Document. - Fill in the following input parameters: Destination → Provide the previously created Destination variable to specify where the generated file will be stored, either in a Salesforce record or in an external storage location. If left blank, the file will be saved to the Salesforce Content Library by default. Document Type → Select the format for your output file, such as docx, or pdf. For example, choose pdf for finalized, non-editable documents, or docx if the document will need further editing. Record ID → Pass the {!$Record.Id} from the triggered record. This tells the action which Salesforce record to use as the data source for generating the document. Template ID → Enter the 24-digit CloudFiles Template ID of a published template. This ensures the correct template is used for document generation, so that the output is formatted and populated as intended. In this example, a variable (TemplateId) is created to store the Template ID. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/09.png) You can also use the Parameters input to configure additional settings for the document, such as password protection, locking, or printing permissions. To know more, refer to the Input Parameters section of Generate Document. > Generate Multiple Documents with Batch ActionYou can also generate multiple documents with different templates using the Generate Document (Batch) action.To do this, you’ll need to create both individual and collection Apex-Defined Variables of the class cldfs__GenerateDocumentFlowInput within the flow. Configure each variable’s fields with the required configuration values (e.g., Template ID, Destination, and Record ID) just as you would for a single Generate Document action.Next, add all the individual variables to the Collection Variable. Finally, pass this Collection Variable into the action’s Inputs parameter. ## Test the setup Save the flow and activate it. Test the flow by navigating to an Order record that contains a list of Order Items. Update the Status field to Approved. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/13.png) The document will then be generated in the backend and stored in the Notes & Attachments section. Refresh the page to view the generated document. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/14.png) Output Parameters The CloudFiles: Generate Document action operates asynchronously, meaning it does not provide immediate outputs after execution. Asynchronous Document Generation: After the action runs, a Document Generated CloudFiles event is published. There is no direct confirmation or result data immediately available. You can use the Document Generated event to initiate other flows or automate additional actions. --- # Generate a document via Screen Flow https://help.cloudfiles.io/salesforce/generate-a-document-via-screen-flow # Generate a document via Screen Flow Learn how to use a Salesforce Screen Flow to let users select and generate multiple document templates in batch directly from a record page. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, you’ll learn how to use a Salesforce Screen Flow to generate documents as part of a guided process. Unlike the CloudFiles widget, which focuses on quick single-template generation, Screen Flows let you select multiple templates at once and generate them together in batch using the Generate Document (Batch) action. This makes them ideal when different documents such as purchase orders, agreements, need to be created simultaneously based on user selections or workflow logic. Follow this tutorial after first creating your templates using the Build a template (Word) guide. ## What to Expect By the end of this tutorial, you will know how to: - Allow users to select document templates directly from a Salesforce record page using a screen flow. - Generate documents from one or more templates in a single process. - Decide where generated documents are stored, either in Salesforce or external storage. ## Tutorial Video Refer to the quick video if you would like to have a visual guide for this tutorial. Read on if you prefer textual content. > Video will be added soon ## Prerequisites ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation and Configuration guides to set up your account and user access. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/01.png) ### Doc-Gen Templates Ensure that the templates published for the object are listed under the Document Generation tab → DocGen Templates. Locate the Template Id for the template you want to use and note it down, as you’ll need it as an input in your flow action. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/02.png) ## Create Custom Metadata Types To make document generation in Flows more flexible, you first need a way to store and reference your template details. Custom Metadata Types provide a structured place in Salesforce to keep this information, so flows can dynamically fetch the right templates instead of relying on hardcoded values. Define the following fields in your Custom Metadata Type to capture key template information: - Template Name - Object - Template Id - Type ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/03.png) You can copy the Template Id from the Doc-Gen Templates tab (of the CloudFiles app) and configure metadata types. The Type field is used to store the file extension (pdf, docx, xlsx). This value will be passed into the flow action to define the output document type, ensuring that the generated file matches the required format. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/04.png) ## Building the Flow To generate documents dynamically, we use a Screen Flow in Salesforce. The flow allows user select the template(s) in the screen. - Navigate to Setup → Flows in Salesforce. - Click New Flow → Select Screen Flow. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/05.png) ### 1 - Create a 'recordId' input Create a recordId variable to capture the Salesforce record ID (Order record) from which the flow is launched. Set its data type to Text and mark it as Available for input so the record ID is automatically passed when the flow runs from a record page. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/06.png) ### 2 - Add a 'Decision' element Add a Decision element to check the object type before continuing in the flow. In this example, configure the condition to check for the Order object using the first 3 digits of the recordId. This ensures that only logic related to Purchase Orders is processed in this branch of the flow. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/07.png) > For other objects (like Account or Contract), you can add additional outcomes to handle their templates separately. ### 3 - Add a 'Get Records' element Add a Get Records element to fetch available templates stored in Custom Metadata Types, filtered by object type. This ensures only the relevant templates are fetched for display on the screen. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/08.png) ### 4 - Include 'Screen' Include a Screen element to present the fetched templates to users and the destination selection for storing the file. Add a Data Table Add a Data Table component to the screen, so users can view and select one or more templates. - Source Collection → Set the Data Table’s Source Collection to the output of your Get Records element {Get_Templates}. This ensures the table is populated with templates retrieved from Salesforce. - Columns → Add relevant fields such as Template Name to clearly identify templates. - Row Selection Mode -> Set to Multiple ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/09.png) Add Radio Buttons Add Radio Buttons to allow users to choose the destination where the generated document should be stored. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/10.png) - Options → Provide values such as: - Salesforce → Store the document in the Notes & Attachments section of the related record. - SharePoint / Google Drive → Store the document in an external storage system. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/11.png) Loop the templates Loop the Selected Templates of the Data Table. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/12.png) Create both individual and collection Apex-Defined Variables of the class cldfs__GenerateDocumentFlowInput inside the flow. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/13.png) For each selected template, populate the required configuration values such as templateId, recordId, and documentType using an Assignment element within the current loop iteration. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/14.png) ### 5 - Add Destination Include a Decision element to configure destination parameters based on the user’s selection in the screen. - Salesforce → Assign values so the generated document is stored in the Notes & Attachments section of the record. - External Storage (SharePoint, Google Drive, etc.) → Assign the corresponding library, driveId, and folder Id parameters. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/15.png) Use Assignment elements for each outcome to map the correct destination details. Refer to the Destination section in Generate Document for more details. Assign library, id, driveId parameters for external storage: ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/16.png) Add the single variable {!DocGenInput} to collection variable {!DocGenInputCollection} ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/17.png) ### 6 - Add the 'Generate Document' Action Finally, add the Generate Document (Batch) action to your flow. Pass the collection variable {!DocGenInputCollection} into the Inputs parameter. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/18.png) This allows Salesforce to generate documents for all selected templates in one go. The action ensures that each template, along with its recordId, type, and destination, is processed together. ## Test the Setup Save and activate the flow. > **Add Flow to Record Page** — Add Flow to Record PageTo allow users to generate documents directly from a record page, add the flow as a component:Navigate to the Object Manager in Salesforce Setup.Select the Order object.Go to Lightning Record Pages → Edit the desired page.Drag the Flow component onto the page layout.In the properties panel, select your newly activated flow.Save and Activate the page.Users will now see a flow section on the record page to generate documents by selecting templates and destination. Once the flow is added to the Order record page, it will now display the screen with available templates. - Select the required templates - Choose a destination (Salesforce) - Run the flow ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/20.png) The generated document(s) will then be saved in the order's Notes & Attachments. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-screen-flow-sf/21.png) Output Parameters Asynchronous Document Generation: Each document generation request (individual input) publishes a Document Generated event upon successful processing. Use these events to trigger downstream automations or flows, such as notifications or additional processing. > Adapting the Flow for Other Objects:This flow can also be adapted for other records by configuring Step 3 – Add a Decision element. Update the Decision outcomes to match the specific object (similar to how it was done for Order), ensuring that each object routes to its relevant set of templates. --- # Generate a Document via Permissioned Templates https://help.cloudfiles.io/salesforce/generate-a-document-via-permissioned-templates # Generate a Document via Permissioned Templates Learn how to build a Salesforce Screen Flow that shows a CloudFiles DocGen template only to users who hold a matching Custom Permission, so restricted templates stay invisible to everyone else. > Kind: Tutorial · Updated: Aug 5, 2026 In this tutorial you will build a Salesforce Screen Flow that shows a CloudFiles DocGen template only to the people who are allowed to use it. Every other user simply never sees that template in the list. This tutorial adds a permission layer on top of the flow: each template is registered as a Salesforce record, optionally tagged with a Custom Permission, and the flow filters the list against the running user's permissions before the screen is ever rendered. ## What to Expect By the end of this tutorial you will know how to: - Register your CloudFiles DocGen templates in Salesforce so a flow can read them. - Gate an individual template behind a Custom Permission. - Grant that permission to a specific group of users with a Permission Set. - Show only the permitted templates in a screen flow, and generate the selected documents onto the record. ## Tutorial Video Refer to the video below for a visual walkthrough of this tutorial. Read on if you prefer the written steps. > Video will be added soon ## Prerequisites ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation and Configuration guides to set up your account and user access. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/01.png) ### Doc-Gen Templates Ensure that at least two published templates for the same object are listed under the Document Generation tab → DocGen Templates — this tutorial needs two so it can demonstrate hiding one template behind permissions while showing the other. Locate the Template Id for each template and note it down, as you’ll need it when registering templates in Step 5. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-automation-sf/02.png) You should also be comfortable working with Salesforce Flow Builder, Custom Permissions, and Permission Sets, since this tutorial builds directly on all three, and have System Administrator (or equivalent) access to create custom objects, custom permissions, and permission sets in your org. ## How the Permissioning Works There are three moving parts, and it helps to understand them before you start clicking: - A custom object called DocGen Template Access acts as a template registry. One record = one template. A text field on that record, Required Custom Permission, holds the API name of the permission a user must have to see it. Leave it blank and the template is public to everyone. - A Custom Permission (in this example See Order Templates) is the switch itself. It carries no access on its own; it is just a flag that the flow can test. - A Permission Set enables that custom permission and is assigned to the users who are allowed to see the restricted templates. At runtime the flow reads all templates for the object, loops over them, and keeps a template only if it is public, or if the running user holds the permission the template asks for. Everything that fails the test is dropped before the screen is built, so a non-permissioned user does not get an error - the row simply is not there. The permission gate is the Can See Template decision inside the first loop, and the generation logic for each selected template runs right after it. You will see the complete flow diagrammed as you build it in Step 6 - Build the Screen Flow below. ## Step 1 - Create the DocGen Template Access Custom Object This object is the template registry the flow reads from. Go to Setup - Object Manager - Create - Custom Object and create an object with the label DocGen Template Access (API name DocGen_Template_Access__c). Keep the standard Name field but relabel it to Template Name, and allow reports so the registry can be audited later. Then add the following custom fields: - Template Name (Name, Text 80) - the friendly label the user sees in the flow's data table. - Template Id (Template_Id__c, Text 36) - the CloudFiles template id that is passed into the Generate Document action. - Source Object (Source_Object__c, Text 80) - which object the template belongs to, for example Order. The flow filters on this so a user is never offered an Account template on an Order. - Output Type (Output_Type__c, Picklist) - pdf, docx, xlsx, pptx. This is passed to the action as the Document Type. - Required Custom Permission (Required_Custom_Permission__c, Text 100) - the API name of the custom permission a user must hold to see this template. Leave it empty to make the template visible to everyone. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/03.png) > A custom object is used here rather than Custom Metadata Types on purpose. Records can be created and edited by an admin in the UI without a deployment, they can be reported on, and - most importantly for this tutorial - the registry itself can be secured with normal object and field permissions. ## Step 2 - Configure the Page Layout Whoever maintains the registry needs to see the permission field right next to the template id, otherwise it is very easy to add a restricted template and forget to tag it. Open Setup - Object Manager - DocGen Template Access - Page Layouts - DocGen Template Access Layout and drag all five fields into the Information section in this order: Template Name, Template Id, Source Object, Output Type, Required Custom Permission, with Owner on the right. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/04.png) ## Step 3 - Create the Custom Permission The custom permission is the switch the flow tests. Go to Setup - Custom Permissions - New and create: - Label: See Order Templates - Name: See_Order_Templates - Description: Gates visibility of restricted CloudFiles DocGen templates for the Order object in the DocGen screen flow. The Name is the value you will type into Required Custom Permission on a template record, and it is also the value the flow compares against. The two must match exactly, including underscores and capitalisation. Create one custom permission per group of templates you want to control - for example See_Order_Templates for order paperwork and See_Legal_Templates for legal riders. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/05.png) ## Step 4 - Create the Permission Set and Assign It A custom permission does nothing until it is granted. Go to Setup - Permission Sets - New and create a permission set, for example DocGen - Restricted Order Templates, with no license. Then: - Open the permission set and choose Custom Permissions - Edit. - Move See Order Templates from Available Custom Permissions to Enabled Custom Permissions and Save. - Still inside the permission set, open Object Settings - DocGen Template Access and give Read access to the object and to all five fields. Without this the flow's Get Records returns nothing and every template disappears, permissioned or not. - Go back to the permission set and choose Manage Assignments - Add Assignment, then tick only the users who are allowed to see the restricted templates. Anyone you do not assign keeps working exactly as before; they just never see the restricted rows. This is the whole point of the design - visibility is controlled by assignment, not by editing the flow. ## Step 5 - Register Your Templates Create one DocGen Template Access record per template. Copy the Template Id from the CloudFiles app under Document Generation - DocGen Templates. A typical Order setup looks like this: - Orders Template - Source Object Order, Output Type pdf, Required Custom Permission left blank. Everybody who can open an Order sees this one. - Order Discount Addendum - Source Object Order, Output Type pdf, Required Custom Permission See_Order_Templates. Only users assigned the permission set see this one. Leave Required Custom Permission blank whenever a template is safe for everyone. Filling it in is what makes a template private, so the default behaviour is always the permissive one. ## Step 6 - Build the Screen Flow Go to Setup - Flows - New Flow and choose Screen Flow. The example flow in this tutorial is called CloudFiles DocGen - Permissioned Templates. Here is what the finished flow looks like end-to-end - refer back to this diagram as you build each element below: ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/21.png) ### 6.1 Create the recordId Input Variable Create a Text variable named recordId and tick Available for input. The record page will pass the Id of the record the flow was launched from into this variable. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/06.png) ### 6.2 Create the Supporting Resources Add these resources from the Toolbox before you start wiring elements together: - AllowedTemplates - a Record collection variable on DocGen Template Access. This is the filtered list that survives the permission check and is the only thing the user ever sees. - DestinationRes - an Apex-Defined variable of class cldfs__Resource. It tells CloudFiles where to put the generated file. - ResultText - a Text variable that collects a line per generated document. - ResultLine - a Text Template used to build each of those lines. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/07.png) ### 6.3 Get Templates (Get Records) Add a Get Records element named Get Templates on the DocGen Template Access object. Filter where Source Object equals Order, store All records, and let Salesforce automatically store all fields. This is the unfiltered list - it still contains the restricted templates, which is exactly why the next three elements exist. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/08.png) ### 6.4 Loop Templates (Loop) Add a Loop element named Loop Templates and point its Collection Variable at the output of Get Templates. Direction: first item to last item. The loop lets you evaluate the permission requirement of each template one at a time. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/09.png) ### 6.5 Can See Template (Decision) - the Permission Gate This is the element that does the actual permissioning. Inside the loop, add a Decision named Can See Template with one outcome called Visible, set Condition Requirements to Custom Condition Logic Is Met, and enter the logic 1 OR (2 AND 3) with these three conditions: - Current Item from Loop Loop Templates > Required Custom Permission - Is Null - True. The template is public, so everyone keeps it. - Current Item from Loop Loop Templates > Required Custom Permission - Equals - See_Order_Templates. The template asks for this specific permission. - Running User's Permission > See_Order_Templates - Equals - True. The person running the flow actually holds it. Read as a sentence: keep this template if it is public, or if it requires See_Order_Templates and the running user has See_Order_Templates. The Running User's Permission resource is the $Permission global in Flow, and it is evaluated per user at run time, which is why the same active flow behaves differently for two different people. The Default Outcome path is deliberately left empty - a template that fails the test is simply never added to the visible list. If you add a second custom permission later, add a second outcome to this decision with the same 2 AND 3 shape, or extend the logic to 1 OR (2 AND 3) OR (4 AND 5). ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/10.png) ### 6.6 Add To Allowed (Assignment) On the Visible outcome only, add an Assignment named Add To Allowed that does AllowedTemplates Add Current Item from Loop Loop Templates. When the loop finishes, AllowedTemplates holds exactly the templates this user is entitled to. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/11.png) ### 6.7 Select Templates (Screen with a Data Table) After the loop, add a Screen named Select Templates and drop a Data Table component on it. Configure it as follows: - API Name TemplateTable, Label Available Templates. - Source Collection: AllowedTemplates - not the Get Templates output. This single setting is what makes the screen show the filtered list. - Columns: Template Name and Output Type. - Row Selection Mode: Multiple, with Minimum Selection 1 so the user cannot click Next without picking something. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/12.png) ### 6.8 Loop Selected Everything up to this point was about deciding what the user is allowed to see. From here on the flow simply acts on what they actually chose. Add a second Loop element named Loop Selected and point its Collection Variable at Select_Templates > Available Templates > Selected Rows, iterating first item to last item. Because the Data Table could only ever offer the templates in AllowedTemplates, this loop can never process a template the running user was not entitled to. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/13.png) ### 6.9 Set Destination Inside the loop, the first thing to do is tell CloudFiles where the finished document should land. Create an Apex-Defined variable called DestinationRes of type cldfs__Resource, then add an Assignment named Set Destination with two lines: DestinationRes > library Equals salesforce, and DestinationRes > id Equals recordId. That combination means "attach the generated file to the Salesforce record the flow was launched from". If you would rather push documents to SharePoint, Google Drive, Box or Dropbox, this is the only element you need to change - set library to that provider and id to the target folder. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/14.png) ### 6.10 Generate Doc (CloudFiles Apex Action) Still inside Loop Selected, add an Action element and search for CloudFiles: Generate Document (Sync). Name it Generate Doc. The synchronous version is the right choice here because the flow needs the result back before it can show the confirmation screen. Set the inputs like this: - Destination: DestinationRes, the Apex-defined variable you just populated. - Document Type (docx / pptx / pdf): Loop Selected > Output Type, so each template renders in whatever format was registered against it. - Record ID: recordId, the record supplying the merge data. - Template: Loop Selected > Template Id, the CloudFiles template ID stored on the registry record. Leave CloudFiles Variables and Parameters empty unless your template needs extra merge inputs. Under View Output Resources you get Content Version Id, Document, Document Name, Download Url and Preview Url back automatically - the tutorial uses Preview Url on the final screen, but Download Url and Content Version Id are equally useful if you want to email the file or link to it elsewhere. See Generate Document (Sync) for the full parameter reference. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/15.png) ### 6.11 Append Result and the ResultLine Text Template The last element inside the loop builds up a human-readable summary. First create a Text Template resource named ResultLine whose body reads: {!Loop_Selected.Name} ({!Loop_Selected.Output_Type__c}) - Preview: {!Generate_Doc.previewUrl}. Then add an Assignment named Append Result that does ResultText Add ResultLine. Because ResultText is a plain Text variable and the operator is Add rather than Equals, each pass of the loop appends one more line instead of overwriting the previous one. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/16.png) And the Append Result assignment itself: ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/17.png) ### 6.12 Results Screen On the After Last path of Loop Selected, add a final Screen named Results with a single Display Text component. Its body is simply: Documents generated and attached to this record: {!ResultText}. The user gets one line per document with a clickable preview link, and the files are already sitting on the record. Connect this screen to the End element and the flow is complete. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/18.png) ### 6.13 Save and Activate Save the flow, give it a meaningful label such as CloudFiles DocGen - Permissioned Templates, and click Activate. A flow that is only saved as a draft will not appear on a record page, so activation is required before the next step will work. ## Step 7 - Add the Flow to the Order Record Page Go to Setup > Object Manager > Order > Lightning Record Pages, open your Order Record Page and click Edit. Drag a Flow component onto the region where you want the launcher to sit - in this build it lives in the right-hand sidebar under Activity. Then set its properties: - Flow: CloudFiles DocGen - Permissioned Templates - Layout: One Column - Pass record ID into this variable: tick this box next to recordId so the field shows {!Record.Id} That checkbox is what feeds the current Order into the flow's recordId variable, which in turn drives both the merge data and the attachment destination. Save the page and activate it as the org default (or as an app/profile-specific assignment) if it is not already. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/19.png) ## Step 8 - Test the Setup Open any Order record and scroll to the flow component. What you should see is a table listing only the templates that are open to everyone plus any restricted templates your custom permission unlocks. Pick one or more, click Next, and the flow generates each document and attaches it to the record - you will see it appear under Notes & Attachments and in the CloudFiles component. The real test, though, is the negative one. Log in as (or use Flow Debug's "Run automation as another user" option for) a user who does not have the permission set. Open the same Order and the restricted template should simply not be in the list. There is no greyed-out row, no error message and no "you don't have access" toast - the template is invisible, which is exactly the behaviour we wanted. Then assign that user the permission set, refresh, and watch the extra row appear. ![](https://media.help.cloudfiles.io/tut-generate-a-document-via-permissioned-templates-sf/22.png) ## Output Parameters You Can Reuse The Generate Doc action hands back five values per document, and any of them can be used later in the flow or passed out to another automation: - Content Version Id - the Salesforce ContentVersion record for the generated file, handy if you want to relate it, share it or attach it to an email. - Document - the full CloudFiles document object. - Document Name - the resolved file name. - Download Url - a direct download link. - Preview Url - an in-browser preview link, which is what this tutorial surfaces on the Results screen. ## Adapting the Flow for Other Objects Nothing in this build is Order-specific except one filter. To reuse the same flow for Quotes, Contracts or a custom object, change the Get Templates filter from Source Object Equals Order to the API name of your object, add the record page component to that object's Lightning page, and register the relevant templates in DocGen Template Access with the matching Source Object value. The custom permission, the decision logic and the generation steps all stay exactly as they are. If you want a single flow to serve every object, you can even replace the hard-coded Order value with a second input variable and set it from the record page. --- # Generate a document with runtime variables https://help.cloudfiles.io/salesforce/generate-a-document-with-runtime-variables # Generate a document with runtime variables Learn how to generate a Purchase Order document using Screen Flow with runtime variables, combining Salesforce record data with user-entered input via CloudFiles. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, you’ll learn how to generate a Purchase Order document using Screen Flow with runtime variables. The tutorial covers how to create a template with runtime variables and then configure those variables in a Flow so that users can provide input at runtime. This approach allows you to generate dynamic documents that combine Salesforce record data with user-entered information using CloudFiles variables in the Generate Document (Sync) action. ## What to Expect By the end of this tutorial, you will learn how to: - Create a template that includes runtime variables. - Configure a Screen Flow to capture user input for those variables. - Pass the collected values into the document generation step. - Generate a final Purchase Order document that merges record details with runtime inputs. ## Tutorial Video Refer to the quick video if you would like to have a visual guide for this tutorial. Read on if you prefer textual content. > Video will be added soon ## Prerequisites ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation and Configuration guides to set up your account and user access. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/01.png) ## Template Setup ### 1 - Template with Runtime Variables The Build a template (Word) tutorial, provides a sample template that uses the Order object along with related items from the OrderItem object. In this tutorial, we’ll extend that concept by adding Runtime Variable. These variables allow you to capture user input at the time of flow execution and merge it into the document, alongside data coming from Order and OrderItem. This makes it possible to dynamically generate additional content based on values provided at runtime. We will create runtime variables for the following data types: - String – To set the Document Title Example: Purchase Order - September 2025 - Double – To pass decimal values such as Discount % Example: Discount: 7.5% - Date – To pass important dates such as the Payment Due Date Example: Payment Due Date: 15-Sep-2025 - Boolean – To control conditional logic in the template by showing or hiding specific information. Example: Display the text “This is an Enterprise Purchase” only when the checkbox is selected. - Rich Text Area – To pass formatted text such as Special Instructions Example: Note: Ensure purchase before quarter end. Steps to Create a Runtime Variable in the Word Template - Click 'Resources'; the Resource Manager opens up. - In the 'New Resource' pane, select Resource type from the drop-down as 'Runtime Variable'. - Enter a Label , and the API Name. - Assign a Value Type based on your requirement. ### 1 - String To pass the Document Name, create a runtime variable of type String. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/02.png) Add the document_name variable under the Document Title action. This ensures the document title is dynamically generated at runtime. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/03.png) ### 2 - Double To pass the Discount %, create a runtime variable of type Double. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/04.png) Add the discount into the template using Insert Field action. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/05.png) ### 3 - Date To pass the Payment Due Date, create a runtime variable of type Date. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/06.png) Add the payment_due_date into the template using 'Insert Field' action. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/07.png) ### 4 - Boolean To control conditional logic in the template, create a runtime variable of type Boolean. This allows you to show or hide specific information based on a true/false value. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/08.png) Conditional Display with Boolean Variable: - Type the text in your template that you want to display conditionally, for example: “This is an Enterprise Purchase”. - Select the text and choose Insert Condition from the right-hand panel. - In the condition settings: Set Field → {!enterprise_purchase} Set Equals → {$GlobalConstant.True} - Click Insert ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/09.png) ### 5 - Rich Text Area To pass Special Instructions, create a runtime variable of type Rich Text Area. This allows you to include formatted content such as bold text, italic text, bullet points, or even hyperlinks in the generated document. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/10.png) Add the special_instructions into the template using 'Insert Field' action. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/11.png) ### 2 - Publish Template Once the template is updated with runtime variables, publish it so that it becomes available for use in document generation. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/12.png) After publishing, the template will appear under the Document Generation → DocGen Templates tab. Make sure to note the Template Id, as you’ll need it later when configuring the Flow action. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/13.png) > Runtime variable names (API Name) are case-sensitive and must match exactly when referenced in Screen Flow or CloudFiles assignments. In the upcoming sections, we will look at how to configure runtime variable reference in Flow. ## Building the Flow To generate documents dynamically, we use a Screen Flow in Salesforce. The flow serves as the bridge between user input and the CloudFiles template. By adding screen elements, we can collect runtime values (like batch number, discount, or payment due date) directly from users at the time the flow runs. These inputs are then mapped to the runtime variables in the template, allowing the generated document to include both Salesforce record data and the additional details provided during execution. - Navigate to Setup → Flows → New Flow. - Choose Screen Flow. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/14.png) ### 1 - Create a 'recordId' input Create a recordId variable to capture the Salesforce record ID (Order record) from which the flow is launched. Set its data type to Text and mark it as Available for input so the record ID is automatically passed when the flow runs from a record page. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/15.png) ### 2 - Include a 'Screen' Include a Screen element to get input for runtime variables. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/16.png) Add a 'Text' Input - String Drag a Text input ito the screen and label it Document Name and set API as varDocumentName. This variable will capture the document name at runtime. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/17.png) Add a 'Number' Input – Double Drag a Number input component onto the screen and label it Discount %. Set the API Name as varDiscount. This variable will capture decimal values at runtime. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/18.png) Add a 'Date' Input – Date Drag a Date input component onto the screen and label it Payment Due Date. Set the API Name as varPaymentDueDate. This variable will capture date values at runtime. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/19.png) Add a 'Checkbox' - Boolean Drag a Checkbox component onto the screen and label it Enterprise Purchase. Set the API Name as varEnterprisePurchase. This variable will capture a true/false value at runtime. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/20.png) Add a 'Long Text Area' – Rich Text Drag a Long Text Area component onto the screen and label it Special Instructions. Set the API Name as varSpecialInstructions. This variable will capture formatted text at runtime. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/21.png) > **Rich Text Input Options** — Rich Text Input OptionsYou can also use any custom screen component to capture rich text input, or pass values from any custom field with rich text format into the runtime variable. These values can then be printed in the generated document while retaining the formatting. ### 3 - Assign CloudFiles Variables Create CloudFiles Variables Create variables of data type Apex-Defined, and select the Apex class as 'cldfs_CloudFilesVariable' for each screen input. We create these variables because the input fields captured in the Screen Flow (Document Name, Batch Number, Discount, etc.) need to be mapped to CloudFiles runtime variables. By assigning these inputs to Apex-defined variables, the values can be passed into the Generate Document (Sync) action. Create one variable for each input field in your Screen Flow: - cfVarDocumentName → for Document Name (String) - cfVarBatchNumber → for Batch Number (Integer) - cfVarDiscount → for Discount % (Double) - cfVarPaymentDueDate → for Payment Due Date (Date) - cfVarSpecialInstructions → for Special Instructions (Rich Text Area) ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/22.png) Assign Values to the CF Variables The CloudFiles variable has key and valueString as parameters, which must be assigned using the Assignment element in the flow. - key is the API name of the Runtime Variable as defined in the CloudFiles template. - valueString is the actual value you want to assign and pass. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/23.png) Add an Assignment element in your Flow for each input and map as follows: - cfVarDocumentName.key → document_name - cfVarDocumentName.valueString → {!varDocumentName} - cfVarBatchNumber.key → enterprise_purchase - cfVarBatchNumber.valueString → {!varEnterprisePurchase} - cfVarDiscount.key → discount - cfVarDiscount.valueString → {!varDiscount} - cfVarPaymentDueDate.key → payment_due_date - cfVarPaymentDueDate.valueString → {!varPaymentDueDate} - cfVarSpecialInstructions.key → special_instructions - cfVarSpecialInstructions.valueString → {!varSpecialInstructions} ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/24.png) Create a collection variable of data type Apex-Defined, and select the Apex class as cldfs_CloudFilesVariable. This will be passed as input for Generate Document (Sync) action. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/25.png) Add all the above variables into this collection. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/26.png) ### 4 - Add Destination The Generate Document (Sync) flow action requires destination parameters if you want to attach the generated document to a specific Salesforce record or store it in external storage. Let's store the document in the Notes & Attachments section of the Order record. If you don’t define a destination, the generated document will be stored by default in the Salesforce Content Library. Steps to Configure Destination: - Create an Apex-Defined Variable of Apex Class cldfs__Resource ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/27.png) - To Save in Order's Notes & Attachments, - Assign the following fields: - Library: Set to salesforce. - Id: Set to the Record Id of the Order record. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/28.png) > **Save Documents to External Storage** — Save Documents to External StorageTo store documents in external storage such as SharePoint, Google Drive, etc., you need to configure the Library, Drive Id, and Folder Id. Refer to the Destination section in Generate Document (Sync) for more details. ### 5 - Add the Generate Document Action - In the flow, click + and select Action. - Search for and choose CloudFiles: Generate Document (Sync). - Fill in the following input parameters: Destination Provide the previously created Destination variable to specify where the generated file will be stored. You can store it either in a Salesforce record or in an external storage location (such as SharePoint or Google Drive). If left blank, the file will be saved to the Salesforce Content Library by default. Document Type Select the format for your output file, such as docx or pdf. - Enter docx for finalized, non-editable documents. - Enter pdf if the document will need further editing. Record ID Pass the {!recordId} from the triggered record. This tells the action which Salesforce record to use as the data source for generating the document. Template ID Enter the 24-digit CloudFiles Template ID of a published template. This ensures the correct template is used for document generation, so that the output is formatted and populated as intended. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/29.png) You can also use the Parameters input to configure additional settings for the document, such as password protection, locking, or printing permissions. To know more, refer to the Parameters section of Generate Document (Sync). ## Test the setup Save and activate the flow. > **Add Flow to Record Page** — Add Flow to Record PageTo allow users to generate documents directly from a record page, add the flow component into the record page:Navigate to the Object Manager in Salesforce Setup.Select the Order object.Go to Lightning Record Pages → Edit the desired page.Drag the Flow component onto the page layout.In the properties panel, select your newly activated flow.Save and Activate the page.Users will now see a flow section on the record page to generate documents with instructions. Once the flow is added to the Order record page, it will now display the screen with inputs for Document Name, Batch Number, Discount, Payment Due Date, Special Instructions. - Enter the details - Click 'Next' ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/31.png) The generated document(s) will then be saved in the order's Notes & Attachments. It will display the runtime values entered by the user along with the standard Order details. ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/32.png) Output Parameters The CloudFiles: Generate Document (Sync) action provides immediate outputs, accessible in the flow’s All Resources. It provides the following output parameters: - Document – Id, driveId, library, name, path, type - Content Version ID - Document Name - Download URL - Preview URL For more details on these parameters, refer to the Output Parameters section of Generate Document (Sync). ![](https://media.help.cloudfiles.io/tut-generate-a-document-with-runtime-variables-sf/33.png) --- # Build a PDF template https://help.cloudfiles.io/salesforce/build-a-pdf-template # Build a PDF template Learn how to turn a fillable PDF form into a reusable template for automated document generation in Salesforce by mapping PDF fields to Salesforce data with CloudFiles DocGen. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, you'll learn how to turn a fillable PDF form into a reusable template for automated document generation in Salesforce. By mapping PDF fields to Salesforce data, CloudFiles DocGen ensures that information flows automatically into the right places, eliminating manual entry and reducing errors across all generated documents. ## What to Expect By the end of this tutorial, you will learn how to: - Configure a fillable PDF template using actions like Insert Field and Insert Checkbox to map Salesforce data. - Publish the template for both manual use (from record pages) and automated use (with Salesforce Flows or processes). ## Prerequisites ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation and Configuration guides to set up your account and user access. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/01.png) ### Have a Fillable PDF Form Ready To build a template in CloudFiles, you'll need a fillable PDF form. A fillable PDF is not just a static document — it's a PDF that has interactive fields such as text boxes and checkboxes layered on top of the form design. These fields can capture or display values, which makes them perfect for mapping to Salesforce data during document generation. Common examples of fillable PDFs include: - Government forms (e.g., W-9, I-9, tax forms) - Application forms (e.g., bank loans, vendor onboarding) - Standard business contracts with input fields If your PDF doesn't already contain fillable fields, you can add them using tools like Adobe Acrobat (Prepare Form) or other PDF form editors before uploading it to CloudFiles. ## Building the Template For this tutorial, we'll use the IRS W-9 form as an example. The W-9 is widely used by businesses to collect tax-related information from vendors or organizations. We'll connect this form to the Account object in Salesforce, since most of the details required on a W-9, such as Business Name, Address, Tax classification, and EIN are typically stored in Account records along with some custom fields. This makes Accounts the most natural fit for generating W-9s automatically. ### 1 - Upload a Template Steps to upload a PDF form Steps to upload a PDF form: - In Salesforce, open the CloudFiles app and go to the Document Generation tab. - Click Upload Template and select your IRS W-9 PDF. - Enter a Template Name (e.g., "W-9 Form – Account"). ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/02.png) - Once uploaded, locate it in the list, click the menu icon (⋮), and choose Edit. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/03.png) - In the side panel, select the Account object and click Set $Record. The PDF will now open in edit mode with Edit, Resources, Preview, and Publish tabs on the right panel, ready for mapping. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/04.png) ### 2 - Insert Text Use Insert Text to place values from Salesforce fields into text areas of the PDF. Map "Account Name" to "Name (Line 1)": - Click the + Insert Text button in the right panel. - Click the Name (Line 1) field on the PDF, or select it from the field list in the bottom panel. - In the Insert Field section on the right, choose the field {!$Record.Name} (Account → Name) from the Field API Name dropdown. - Click Apply. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/05.png) Map other fields as below: - Business Name (Custom field) → Business name/disregarded entity (Line 2) - Billing Street → Address (Line 5) - Billing City → City (Line 6) ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/06.png) ### 3 - Insert Checkbox Use Insert Checkbox to control checkboxes in the PDF based on Salesforce data. Map "Account Type = Individual" to "Individual/sole proprietor": - Click the + Insert Checkbox button in the right panel. - Click the checkbox for Individual/sole proprietor on the PDF, or select it from the bottom panel. - In the condition builder on the right: - Set Field → Account Type ({!$Record.Type}). - Set Operator → Equals. - Enter Value → Individual. - Click Apply to confirm the condition. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/07.png) Map other fields as below: - If Account Type = Corporation, tick C corporation. - If Account Type = Partnership, tick Partnership. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/08.png) ### 4 - Use Resources (Optional) Sometimes you'll need data beyond the main object (Account). Template - Resources let you pull in values from related records (using a Record Single Variable) or capture user-provided inputs (using a Runtime Variable). Record Single Variable A Record Single Variable is used when you need to bring values from a related or different object into your PDF template. Instead of being limited to the fields on the main object (e.g., Account), you can extend the template to include data from related records such as Contacts, Opportunities, or custom objects. Why use it here? In the W-9 form, the "Requester's name and address (optional)" field is not typically stored on the Account record. Instead, it may come from a related Contact (e.g., the primary requester). By using a Record Single Variable, you can fetch that Contact's details and map them into the optional field on the PDF. Steps to Create and Use a Record Single Variable: - Create the variable - Go to the Resources tab → + Create New Resource. - Select Record Single Variable. - Set the Object as Contact. - Give it a Label (e.g., Requester). - Add filter criteria - Add a condition: Account ID = {!$Record.Account.Id}. - This links the Contact record to the Account being used. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/09.png) - Insert the variable - The variable will now appear under RECORD (SINGLE) VARIABLES in the field selector. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/10.png) - Map to the PDF - Click the + Insert Text button, then click the Requester's name and address (optional) field in the PDF. - In the Field API Name dropdown, choose the variable (e.g., Requester Name). - Click Apply. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/11.png) This ensures cross-object data like Contact details can flow into the W-9 even when the template is tied to Accounts. (Refer to Record Single Variable for more detailed steps on mapping.) Runtime Variable A Runtime Variable stores a value that can be passed from a Salesforce Flow and generated dynamically during execution using Doc Generation Flow Actions. It acts as a placeholder for data provided by the user at runtime, which can then be mapped to a field in the PDF template through Apex-Defined Variables. Why use it here? In the W-9 form, the "Other (see instructions)" checkbox under Tax Classification requires additional clarification text. Since this description varies (e.g., "Foreign partnership" or "Non-profit"), the value can be passed at runtime using a Runtime Variable and then mapped into the PDF field. Steps to create a Runtime Variable: - Create the variable - Go to the Resources tab → + Create New Resource and select Runtime Variable. - Give it a Label (e.g., Other Clarification). - Set Value Type as String. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/12.png) - Insert the variable - Click + Insert Text, then click the Other (see instructions) text field on the PDF. - In the Field API Name dropdown, select the runtime variable (e.g., Other Clarification). - Click Apply. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/13.png) To pass a value for this Runtime Variable, you need to configure how it will be provided during document generation. This is typically done in a Salesforce Flow by creating an Apex-Defined Variable, where the value can be assigned based on user input. Refer to Runtime Variable for detailed instructions on configuring and mapping runtime variables in Flow. ### 5 - Publish After mapping: - Click the Publish tab in the right panel. - Publish it as a new template (or overwrite an existing one). - The template will now be available for generating W-9s from Account records and will appear under the Document Generation → DocGen Templates tab. ## Test the setup Once the template is published, it becomes available for use in two ways: ### 1 - Manual Usage from Widget The published template will appear in the Document Generation widget on the related Salesforce record (e.g., Account record). Steps to generate manually: - Open the related record (e.g., Account: John Doe Consulting). - In the CloudFiles DocGen widget, locate your published template in the list. - Click Generate PDF to create the document. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/14.png) - Once generated, you can: - Download the document. - Preview the document inline in Salesforce. - Copy to Salesforce Files for attaching directly to the record. - Copy to External Storage for saving the document to a connected CloudFiles library. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/15.png) This method is useful for one-off requests, such as when a user needs a form generated immediately. ![](https://media.help.cloudfiles.io/tut-build-a-pdf-template-sf/16.png) ### 2 - Automatic Usage with Flows Every template in CloudFiles has a unique Template ID. This ID can be used in Salesforce Flow to trigger document generation automatically using Doc Generation Flow Actions. For example: - When a new Account record is created, a W-9 can be generated automatically. - When a record is updated (e.g., stage changes -> “Onboarded” or “Contract Signed”), the related PDF template can be generated in the background. Refer to Generate a document via automation for automatic document generation with record update. --- # Merge documents https://help.cloudfiles.io/salesforce/5nLC-merge-documents # Merge documents Learn how to merge multiple files (PDFs, DOCX, images) into a single consolidated PDF using the Merge Documents (Sync) action in a Salesforce Screen Flow. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, you will learn how to merge multiple files into a single PDF using the Merge Documents (Sync) action. This feature allows you to combine various document types such as PDFs, docx, Images (PNG and JPEG) into one consolidated pdf file. ## What to Expect By following this tutorial, you will learn how to: - Combine different files into a single merged PDF. - Configure Salesforce Flow to dynamically collect files and pass them into the Merge Documents (Sync) action. - Attach the final merged PDF to a Destination ## Prerequisites ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation and Configuration guides to set up your account and user access. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/01.png) ## Building the Flow In this tutorial, we’ll use the Opportunity object. Imagine a scenario where users upload supporting files such as invoices (PDFs), contracts (DOCX/JPEG), or other documents to an Opportunity record. We’ll create a flow that can be launched from a button, allowing users to select these files and merge them into a single PDF that can be viewed directly from the Opportunity record. ### 1 - Create Screen Flow - Go to Setup → Flows in Salesforce and create a new Screen Flow. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/02.png) - Create a recordId variable to capture the Salesforce record ID (Opportunity record) from which the flow is launched. Set its data type to Text and mark it as Available for input so the record ID is automatically passed when the flow runs from the record page. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/03.png) ### 2 - Collect Content Document Ids - Add a Get Records element to fetch all ContentDocumentLink records where the Linked Entity Id equals the recordId. This ensures you retrieve all files that have been uploaded to the Opportunity. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/04.png) - Add a Loop element to iterate over each ContentDocumentLink record fetched in the previous step. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/05.png) - Create a Variable resource named ContentDocumentIds, set its Data Type to Text, and enable Allow multiple values (collection) so it can store multiple Ids. This variable will hold all the document IDs retrieved from the Opportunity record, allowing them to be used later in the flow for merging. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/06.png) - Inside the loop, use an Assignment element to add each file’s ContentDocumentId to the ContentDocumentIds collection variable. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/07.png) ### 3 - Get Content Documents - Add a Get Records element to fetch all ContentDocument records using the ContentDocumentIds. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/08.png) ### 4 - Let Users Select Files Add a Screen element to choose which files to merge, rather than merging all. This provides flexibility for users to pick specific files. - Add a Screen element with a Data Table component. - Set the Source Collection to the list of Content Documents ContentDocumentIds retrieved in the above step. - Set Row Selection Mode to Multiple so users can pick more than one file. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/09.png) - Add a Loop element to iterate over the Selected Rows from the Data Table {!SelectDocs.selectedRows}. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/10.png) To pass documents into the Merge Documents action, you need Apex-defined variables of type cldfs__Resource. - selectedResourceSingle → Single resource (to configure each resource inside the loop). ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/11.png) - selectedResources → Collection resource (to store all selected documents). ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/12.png) Assign Values in Loop - Inside the Loop Selected Content Documents, add an Assignment element: - Set selectedResourceSingle.library = salesforce. - Set selectedResourceSingle.id = ContentDocumentId ({!Loop_Selected_Content_Documents.Id}). ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/13.png) Add to Collection - Use another Assignment element to add the selectedResourceSingle into the selectedResources collection. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/14.png) ### 5 - Define Destination Defining a Destination ensures that the merged document is properly linked and stored in Salesforce. To do this, create Apex-Defined Variable of Apex Class cldfs__Resource and define values such as id, driveId and library according to the storage location. To Save in Salesforce, add an Assignment element to set the values: - Destination → id = recordId (ensures the merged file is linked to the current record). - Destination → library = salesforce (stores the file in the Salesforce library). ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/15.png) > To Store in External Storage:When using CloudFiles with the Document Management & Sharing, assign the Library (external library name), DriveId (ID of the connected drive), and Id (folder or location ID within the drive). ### 6 - Add the 'Merge Documents' Action The Merge Documents (Sync) action is the final step that combines all the selected files into a single PDF. In this step, you define where the file should be stored (Destination), give it a name, and pass in the list of documents to merge. Drag in the Merge Documents (Sync) flow action and configure the following input values: - Destination → Use the Destination variable you created earlier to define where the merged file should be stored (e.g., linked to the current record). - File Name → Provide a name for the merged output file (e.g., Merged File). - Resources → Map the selectedResources collection variable, which contains all the documents to merge. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/16.png) ## Test the setup ### 1 - Add the Flow to an Action To make the flow easily accessible to users, add it as a button on the Opportunity record page: - Go to Setup → Object Manager → Opportunity → Buttons, Links, and Actions, then create a new Action of type Flow and select the Screen Flow you created. - Give the action a label, such as Merge Documents, and save it. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/17.png) - Add the button to the Opportunity Page Layout ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/18.png) Users will now see the Merge Documents button on the Opportunity record, allowing them to select and merge files directly from the record. > **NOTE** — NOTE: You can repeat the same setup for other Salesforce objects such as Accounts, Cases, or custom objects where users upload files, making the merge functionality available across different processes. ### 2 - Execute the Action - Go to an Opportunity record. - Upload files (e.g., invoices, contracts, images) to the record. - Click the Merge Documents button. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/19.png) - Select the files you want to merge ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/20.png) - Click Next → wait for the merge to complete. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/21.png) - The merged PDF will be created and added to the Opportunity record ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/22.png) ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/23.gif) Output Parameters: The Merge Documents (Sync) action returns immediate outputs: ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/24.png) - Document - Metadata details of the generated file. - If saved in Salesforce: includes the file’s Content Document Id and library (salesforce). - If saved externally: includes metadata (Id, Library, DriveId, Type, Path of the file in external storage. ![](https://media.help.cloudfiles.io/tut-merge-documents-sf/25.png) - Content Version Id - The Content Version Id of the generated file (when saved in Salesforce). - Document Name - The name of the merged file. - Download URL - A dynamic link to download the generated file. - Preview URL - A dynamic link to preview the file. This can be displayed as a clickable hyperlink in a Screen or embedded in a custom screen component. --- # Secure PDF https://help.cloudfiles.io/salesforce/secure-pdf # Secure PDF Learn how to secure PDF documents generated via CloudFiles automation in Salesforce by applying printing, locking, password, and retention options through a Screen Flow. > Kind: Tutorial · Updated: Jul 4, 2026 In this tutorial, you’ll learn how to keep your PDF documents safe and protected. We’ll explore how to apply security options while generating via automation. You can secure a PDF during generation for the following options: - Printing – (AllowPdfPrinting) - Locking the file – (LockPdf) - Password for edit access – (PdfOwnerPassword) - Password for viewing – (PdfViewPassword) - File retention duration at the destination – (Retention) - Allow filling fields if the generated PDF includes form fields – (AllowFillingPdfFormFields) ## What to Expect By the end of this tutorial, you’ll be able to: - Add security options such as passwords, printing, and edit restrictions to generated PDFs. - Control how long your documents remain accessible to recipients. ## Prerequisites ### Install CloudFiles in Salesforce CloudFiles is available on the Salesforce AppExchange and can be installed using the standard app installation process. Check out Installation and Configuration guides to set up your account and user access. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/01.png) ## Building the Flow: Before adding PDF security options, make sure you already have a basic screen flow ready. You can follow the tutorial Generate a document with runtime variables to set up your flow up to the point where a document is generated. This tutorial is based on a Purchase Order (PO) example, where the PO document built using a template based on the Order object and is printed with runtime values entered through a Screen Flow. Your flow should at least include: - A Screen where users can enter input values. - The Generate Document (Sync) action to create the file. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/02.png) > **Note** — NOTE: You can also create a screen flow without using runtime variables if your template is predefined. In this tutorial, we’ll focus specifically on how to secure generated PDFs using the Generate Document (Sync) action. The Parameters input we’ll use here can also be applied to other document generation actions. For more details, check out Doc Generation Flow Actions. ### 1 - Update Destination The Retention parameter only works when the generated document is saved to an external destination, such as SharePoint, OneDrive, CloudFiles, etc. To enable this, you’ll need to define the Destination (Apex-Defined variable), including fields like Id, DriveId, and Library that specify where the file should be stored externally. In this example, we’ll use a folder from SharePoint as the destination. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/03.png) Make sure to configure the SharePoint folder details properly in your flow for Destination variable, so that the generated Purchase Order (PO) PDF is stored there and the retention settings (like file auto-deletion or expiry) can take effect. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/04.png) ### 2 - Screen for Security Inputs Add a new screen element in the flow before the document generation step. This screen will collect user inputs for the following security settings: - Allow Pdf Printing (TRUE/FALSE) – permits or restricts printing. - Lock Pdf (TRUE/FALSE) – locks PDF from edits. - Pdf Owner Password – owner password to restrict editing access. - Pdf View Password – view password to restrict viewing access. - Retention – retention duration in minutes for how long the file remains at the external destination. Drag Checkboxes for booleans and Text input for passwords into the screen. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/05.png) ### 3 - Assign Security Parameters Now, create an Apex-defined variable of type cldfs__DocGenParams to hold the inputs. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/06.png) Add an Assignment element that assigns the values from the screen to this variable. This ensures all user-entered values are passed into the variable. Eg: - Parameter.AllowPdfPrinting = {!Screen.AllowPdfPrinting} - Parameter.PdfOwnerPassword = {!Screen.PdfOwnerPassword} ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/07.png) ### 4 - Update Flow Action Edit the Generate Document (Sync) flow action. For the Parameters field, select and map the Apex variable you created earlier. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/08.png) ## Test the setup ### 1 - Activate the Flow After saving all your changes, activate the flow to make it available for use. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/09.png) > **Add the Flow to the Record Page** — Add the Flow to the Record PageEnsure the flow is added to the Order record page and attach the folder from the drive where the generated document will be stored to the record's CloudFiles widget. ### 2 - Execute the Flow - Navigate to the Order record you want to print the Purchase Order (PO) for and enter the inputs. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/11.png) - In the flow’s security input screen, provide values for your PDF restrictions: - Example: Set AllowPdfPrinting = TRUE, enter a View Password, and define Retention = 3 minutes. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/12.png) - Once the flow completes, locate the generated file in the destination folder (e.g., SharePoint, OneDrive) ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/13.png) - Open the PDF and verify that: - Printing is enabled if AllowPdfPrinting = TRUE. - The file requires the set password(s) for viewing or editing. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/14.png) ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/15.png) - Check whether the file remains available only for the specified duration. For example, if Retention = 3, confirm that the file is automatically removed after 3 minutes. ![](https://media.help.cloudfiles.io/tut-secure-pdf-sf/16.png) --- ## Salesforce: Document AI --- # Document AI https://help.cloudfiles.io/salesforce/document-ai # Document AI Step-by-step guidance for installing, configuring, and using CloudFiles Document AI within your Salesforce org. CloudFiles Document AI uses NLP and AI-powered OCR to extract key information from documents, including handwritten text and images. > Kind: Guide · Updated: Jul 9, 2026 This guide provides step-by-step instructions for installing, configuring, and using CloudFiles Document AI within your Salesforce org. Whether you're setting it up for the first time or optimizing your document processing workflows, this documentation covers everything you need. CloudFiles Document AI uses NLP and AI-powered OCR to extract key information from documents, including handwritten text and images, enabling intelligent data extraction, automation, and integration with Salesforce for efficient document management. Get started with these key sections: - Installation: How to set up CloudFiles Document AI in your Salesforce instance — installing the package from the Salesforce AppExchange, understanding the included components, and reviewing the technical requirements for compatibility. - Configuration: A step-by-step process for setting up and integrating CloudFiles with Salesforce — connecting your Salesforce org, verifying account status, uploading documents, extracting insights using the AI Playground, monitoring usage trends, and managing user access and licenses. - Features: The different types of AI agents available in CloudFiles Document AI and how each can be used — from querying and analyzing documents to processing and organizing large files. --- # Installation (Document AI) https://help.cloudfiles.io/salesforce/rFxC-installation # Installation The Installation section guides you through setting up CloudFiles Document AI in your Salesforce org for AI-powered document processing. > Kind: Guide · Updated: Jul 4, 2026 The Installation section guides you through setting up CloudFiles Document AI in your Salesforce org for AI-powered document processing. It includes OCR for text extraction, automated data extraction, and document classification to streamline workflows and reduce manual effort. This section is divided into two key sub-sections - 1. **Installing from the Salesforce AppExchange** — The CloudFiles managed package is available on the Salesforce AppExchange. This subsection covers:Pre-requisites – System Administrator access is required.Step-by-step installation guide – Instructions for finding CloudFiles on AppExchange and approving third-party access.Post-installation steps – Configure your CloudFiles account. 2. **What's In the Package** — Installing CloudFiles provides access to tools and features for AI-powered document processing. This subsection covers:CloudFiles Lightning App – Available in Salesforce’s App Launcher.Custom Permissions – Manage user access with predefined roles .Flow Actions & Components – Automate document processes using Salesforce Flows, CloudFiles Flow Actions and Platform Events.Apex Support – Extend functionality with custom Apex code.Note If you're on a paid plan, reach out to the CloudFiles support team for further assistance, at - support@cloudfiles.io --- # Installing from the Salesforce AppExchange (Salesforce: Document AI) https://help.cloudfiles.io/salesforce/installing-from-the-salesforce-appexchange # Installing from the Salesforce AppExchange CloudFiles Document AI is available to install from the Salesforce AppExchange. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles Document AI | OCR, Text Extraction, Classification is available to install from the Salesforce AppExchange. ![](https://media.help.cloudfiles.io/dai-installing-from-the-salesforce-appexchange-sf/01.png) > **Prerequisite** — You must have System Administrator credentials to install an application from the AppExchange. ## Installation Steps - Go to the CloudFiles Document AI | OCR, Text Extraction, Classification listing on the Salesforce App Exchange, and click on "Get It Now". ![](https://media.help.cloudfiles.io/dai-installing-from-the-salesforce-appexchange-sf/02.gif) - Log in to the AppExchange. - Specify where you want to install - Click Install in production to install in your production instance.Click Install in sandbox to install in a sandbox. ![](https://media.help.cloudfiles.io/dai-installing-from-the-salesforce-appexchange-sf/03.gif) - Confirm the Installation Details - Check "I have read and agree to terms and conditions"Click "Confirm and Install" ![](https://media.help.cloudfiles.io/dai-installing-from-the-salesforce-appexchange-sf/04.gif) - This redirects you to Salesforce login page to continue the installation. - Choose who to install CloudFiles for, Select "Install for Admins Only". ![](https://media.help.cloudfiles.io/dai-installing-from-the-salesforce-appexchange-sf/05.gif) - Don't worry, all your users will be able to access CloudFiles. We select this option to better control the permissions for all users. - Approve Third-Party Access - Check "Yes, grant access to these third-party websites"Click "Continue" ![](https://media.help.cloudfiles.io/dai-installing-from-the-salesforce-appexchange-sf/06.gif) - Read Why are various third party accesses asked during installation for information. - The App may sometimes take long time to install, click "Done". You will recieve an email after the installation is completed. ![](https://media.help.cloudfiles.io/dai-installing-from-the-salesforce-appexchange-sf/07.gif) > **Post Installation** — After installing, you must finish the steps listed in Configuration based on your business use case. --- # What's In the Package https://help.cloudfiles.io/salesforce/8Dl7-whats-in-the-package # What's In the Package Overview of what's included in the CloudFiles Document AI managed package for Salesforce: the Lightning Experience app, permission sets, Flow Actions and Screen Flow Components, platform events, and Apex extensibility. > Kind: Guide · Updated: Jul 4, 2026 Installing the CloudFiles Document AI | OCR, Text Extraction, Classification managed package enables AI-driven document processing within Salesforce. The package includes tools for OCR, text extraction, and document classification to streamline data management and automation. ## CloudFiles Lightning Experience App The CloudFiles app is accessible via the App Launcher in Lightning Experience. This app enhances productivity by allowing users to seamlessly switch between apps and includes all admin related pages. ![](https://media.help.cloudfiles.io/dai-whats-in-the-package-sf/01.gif) The Lightning app includes Lightning page tabs of utilities like "Home", "Document AI", and "Settings". You can even append other navigation items to the Lightning app that you find relevant. ![](https://media.help.cloudfiles.io/dai-whats-in-the-package-sf/02.png) Manage the App: Edit and configure the app in App Manager under Lightning Experience Setup. ![](https://media.help.cloudfiles.io/dai-whats-in-the-package-sf/03.gif) ## Lightning Web Component (LWC) The CloudFiles Doc-Gen widget is a Lightning Web Component that integrates into any Salesforce standard or custom Lightning page. It allows users to attach and utilize multiple Doc Gen templates to generate various documents in .docx and .pdf format directly from Salesforce records, enabling template-based document creation. ![CloudFiles Doc-Gen widget Lightning Web Component](https://media.help.cloudfiles.io/dai-whats-in-the-package-sf/05.gif) ## Microsoft Add-Ins The CloudFiles Add-in integrates with Microsoft Word, Excel, and PowerPoint, enabling users to create and manage templates across various document types. With dynamic fields, templates automatically populate with Salesforce data. Users can efficiently design and generate documents directly within their preferred Microsoft Office applications. ![CloudFiles Microsoft Office Add-in](https://media.help.cloudfiles.io/dai-whats-in-the-package-sf/06.gif) ## CloudFiles Permission Sets The CloudFiles app includes default permissions to manage access to its features. The Super Admin permission grants access to advanced features, including the AI Playground. ## Flow Actions and Components The package includes CloudFiles Flow Actions and Screen Flow Components, enabling Process automation through Flow Builder and Dynamic user interfaces with Screen Flows. ![](https://media.help.cloudfiles.io/dai-whats-in-the-package-sf/04.png) > File types supported by AI Flow Actions include:PDF .pdfImages (JPEG, PNG etc.) .jpeg .pngCSV .csvTXT .txtJSON .json ## CloudFiles Events CloudFiles supports event-driven automation with: - Platform Events: Trigger events for operations related to CloudFiles functionality. - Event Records: Automatically create custom "CloudFiles Event" records, which can be leveraged in workflows and triggers. ## Apex Extend CloudFiles functionalities using Apex to build advanced, custom integrations for your Salesforce org. --- # Configuration (Document AI) https://help.cloudfiles.io/salesforce/AMNh-configuration # Configuration Landing page for CloudFiles Document AI setup in Salesforce: AI Playground, account setup, Document Mapper, Datasets, Settings, Usage, and User Management. > Kind: Guide · Updated: Jul 4, 2026 This section is the foundation for using CloudFiles in Salesforce. It guides you through setting up your CloudFiles Account, How to use the AI Playground and much more. This section is divided into four key sub-sections - 1. **AI Playground** — CloudFiles AI Playground enables users to test and refine AI-powered document queries using natural language. It can extract, classify, validate, summarize, and analyze information from documents containing printed text, handwritten content, and images before incorporating those queries into automated workflows. 2. **CloudFiles Account Setup** — Before you can start using CloudFiles, you need to connect your Salesforce Org with CloudFiles. This section covers:Connecting Your Salesforce Org – Step-by-step process to set up your CloudFiles Account.Verifying Account Status – Confirm your CloudFiles account details and connection status in the Settings tab.Once the account is successfully connected, you can explore CloudFiles features. 3. **Document Mapper Setup** — In this article, we describe how Document Mapper uses a configuration-driven, AI-powered approach to extract data from uploaded documents (such as invoices, purchase orders, agreements, and onboarding forms) and map it into Salesforce record operations. It explains how extracted values are normalized and used to create or update Salesforce records, including support for related (child) record creation from repeating structures like line-item tables, followed by a step-by-step walkthrough of the overall process. 4. **Datasets** — CloudFiles Datasets allow you to combine multiple documents and Salesforce record data into a single AI-ready collection for analysis. Instead of querying documents individually, you can run natural language prompts across the entire dataset to compare documents, summarize information, and uncover insights from related files such as contracts, quotes, binders, and reports. 5. **Settings** — The Settings section provides an overview of CloudFiles Document AI agents, categorized into Query, DirectQuery, and Split types with their supported versions. It helps users understand available agent options and directs them to the Functional Agents article for guidance on choosing the right agent. 6. **Usage** — This guide explains how to track AI processing activity in CloudFiles, including monitoring processed pages, credits, and usage trends over time. 7. **User Management** — Controlling user access and permissions is crucial for maintaining security and efficiency. This section covers:User Permissions – Define and assign roles to control access.License Management – Manage CloudFiles user licenses to ensure only authorized users have access. --- # AI Playground https://help.cloudfiles.io/salesforce/ai-playground # AI Playground The AI Playground in CloudFiles provides an interactive environment where users can test, refine, and evaluate AI-powered document queries before using them in automation workflows. > Kind: Guide · Updated: Jul 4, 2026 The AI Playground in CloudFiles provides an interactive environment where users can test, refine, and evaluate AI-powered document queries before using them in automation workflows. Using natural language prompts, users can extract, classify, validate, summarize, and analyze information from documents containing printed text, handwritten content, and images. ![](https://media.help.cloudfiles.io/dai-ai-playground-sf/01.gif) The AI Playground supports two types of playgrounds: ![](https://media.help.cloudfiles.io/dai-ai-playground-sf/02.png) 1. **File Playground** — The File Playground is used to analyze a single document at a time. It is ideal for use cases where information needs to be extracted, validated, or summarized from one file, such as an invoice, contract, ID card, or report. Users can upload a document, test different prompts, and evaluate how effectively the AI responds to queries on that individual file. 2. **Dataset Playground** — The Dataset Playground is designed for working with a collection of documents grouped together as a dataset. Instead of analyzing files individually, the AI evaluates information across all documents within the dataset at once. This is useful for scenarios where information must be compared, validated, or analyzed across multiple files, such as verifying whether several KYC documents belong to the same person, comparing contracts, or identifying inconsistencies across records. It helps users test prompts that rely on relationships and context between multiple documents rather than a single file. --- # File Playground https://help.cloudfiles.io/salesforce/file-playground # File Playground The File Playground in CloudFiles lets users upload a single document and test natural language queries to extract, classify, or act on its contents. > Kind: Guide · Updated: Jul 4, 2026 The File Playground in CloudFiles allows users to interact with a single document using natural language queries. Users can upload files, test different queries, and evaluate their effectiveness in extracting, classifying, or executing the input prompt based on the contents of the uploaded file. It provides a space to experiment with various document processing capabilities. ![](https://media.help.cloudfiles.io/dai-file-playground-sf/01.png) > Users can upload a single file at a time. Once uploaded, the file is automatically stored as a Content Document within Salesforce for secure management and processing. > The file types supported in the AI playground include:Documents .pdf, .docxImage (JPEG, PNG etc) .jpeg .png ## Create File Playground Users can create a File Playground session by navigating to the Playground section, clicking the Create Playground button, and selecting File Playground from the dropdown menu. After selecting the File Playground option, the Create Playground configuration window appears. ![](https://media.help.cloudfiles.io/dai-file-playground-sf/02.png) The Create Playground option allows users to configure how a file will be processed before uploading it. Here, you can select a Query Agent (the AI model that will be used to interpret and respond to queries) and optionally specify the Pages to Process. If no pages are specified, the entire document will be processed by default; otherwise, only the selected page numbers or ranges will be used for context. Once configured, you can upload a file, and CloudFiles will process it with the chosen agent, applying the page-level restrictions you’ve set. This ensures that queries run in the Playground are executed against the right agent and the most relevant parts of the document, giving you more precise and efficient results. The selected Agent is displayed in the main Playground list once a session is created. This lets users easily compare how different agents respond to the same prompt or document. ![](https://media.help.cloudfiles.io/dai-file-playground-sf/03.png) ## Document Viewer The Document Viewer allows users to preview, zoom in, scroll, and download the uploaded document for easy reference. ![](https://media.help.cloudfiles.io/dai-file-playground-sf/04.png) ## Query Input The Query Panel enables users to test the effectiveness of queries by inputting relevant prompts and viewing results with uploaded documents. Using Natural Language Processing (NLP), it extracts specific information from both printed and handwritten text, including text from images. Users can enter queries in any language, and the system processes them based on different prompt types: - Classification Prompts – Categorize documents (e.g., "Is this a Passport, Driving License, or neither?"). - Extraction Prompts – Retrieve specific details (e.g., "Extract the passport number."). - Validation Prompts – Verify extracted data (e.g., "Does this document contain a valid ID number?"). - Decision-Making Prompts – Automate workflow actions (e.g., "Should this document be marked as verified?"). - Summary Prompts – Generate concise summaries (e.g., "Summarize the key details of this contract."). - Complex Calculation Prompts – Extract data and perform calculations on it (e.g., "Find the invoice date and add 30 days to determine the due date."). Extracted results are always text-based and must be relevant to the document. If the system is 99% or more confident, it returns the extracted result. Otherwise, for low-confidence or out-of-context queries, it displays NA to ensure accuracy. ## Query History The Query History section stores and displays previously asked queries along with their extracted answers for quick reference. > This iterative process of querying with different prompts helps you fine-tune your queries for optimal results before implementing them in your workflows. ![](https://media.help.cloudfiles.io/dai-file-playground-sf/05.gif) --- # Dataset Playground https://help.cloudfiles.io/salesforce/dataset-playground # Dataset Playground A Dataset in CloudFiles Document AI groups multiple documents together so the Dataset Playground can run natural language queries across all of them at once. > Kind: Guide · Updated: Jul 4, 2026 A Dataset in CloudFiles Document AI is a collection of multiple documents grouped together so they can be analyzed by AI as a single unit. Instead of querying each document individually, datasets allow users to run natural language prompts across all documents in the collection at once. Datasets are useful when working with related documents such as contracts, quotes, insurance forms, or reports where information may need to be extracted, compared, or summarized across multiple files. > Before using the Dataset Playground, a dataset must first be created and processed. This involves defining the dataset and uploading the documents that will be included in it. For detailed steps on creating and configuring datasets, refer to the Datasets article. After the dataset has been processed, you can test and query it using the AI Playground by navigating to the AI Playground tab, clicking on Create Playground, and selecting Dataset Playground from the dropdown. During setup, choose the dataset you want to query, and once the playground session is created, all documents within that dataset are loaded and available for querying. ## Dataset Playground View The Dataset Playground interface is designed to help users experiment with prompts and observe how the AI interprets information across an entire dataset. It provides a structured environment where users can review documents, test queries, and validate results before implementing them in automation workflows. ![](https://media.help.cloudfiles.io/dai-dataset-playground-sf/01.png) The interface includes the following components: ### Files Panel The Files Panel displays all documents that belong to the selected dataset. These files are the same documents that were uploaded and processed during dataset configuration. Users can: - View the complete list of documents included in the dataset - Select any document to preview its contents - Switch between documents to better understand the context of the dataset Although queries run across all documents in the dataset, selecting a specific file allows users to inspect the document content and verify how the AI extracts information from it. This is particularly helpful when refining prompts or troubleshooting unexpected query results. ### Document Viewer The Document Viewer allows users to preview, zoom in, scroll, and download the uploaded document for easy reference. ### Query Panel The Query Panel allows users to enter natural language prompts to test queries against the selected dataset. Unlike the File Playground where prompts run on a single document, the Dataset Playground analyzes all documents contained within the dataset and returns results based on the combined information across those files. Using Natural Language Processing (NLP), the system can interpret prompts and extract relevant information from both printed and handwritten text, including text present in images. Users can run different types of prompts such as classification, extraction, validation, summarization, decision-making, or calculation queries to analyze the dataset. The results are returned as text-based outputs derived from the dataset content. If the system determines the answer with high confidence, it returns the extracted result. If the query is unclear, unrelated to the dataset, or the confidence level is low, the system returns NA to ensure accuracy. ### Query History The Query History section stores and displays previously asked queries along with their extracted answers for quick reference. ## Why Use the Dataset Playground The Dataset Playground is primarily used to test and refine prompts before using them in automation. It allows users to verify how queries behave across multiple documents and ensure that the extracted information is accurate. > Here’s your example rewritten in the same format for KYC documents:Upload multiple documents to the Dataset and use the Dataset Playground to run queries across all files in that dataset.For example, you upload a dataset containing multiple KYC documents (such as passports, driver’s licenses, or ID cards) for identity verification.These documents may belong to the same individual or different individuals, and may include variations in name formats, missing fields, or inconsistent details.Ask queries that analyze information across all documents in the dataset, such as verifying whether all documents belong to the same person based on key identity fields like name and date of birth.For example:Query: Instruction: Verify identity consistency across KYC documents.Task: Review all documents in the dataset and extract the full name and date of birth of the primary individual from each document. Normalize name formats (e.g., "DOE, JOHN" → "John Doe") and compare across all documents. Determine whether all documents belong to the same person. If not, group documents by matching identities.Output:{ "result": "Different Individuals", "groups": [ { "name": "John Doe", "documents": ["Passport", "Driver License"] }, { "name": "Andrew Sample", "documents": ["Driver License"] } ] } Once a query works as expected in the playground, the same prompt can be used in Salesforce automation using CloudFiles Document AI Flow actions such as Query Document/Dataset and Query Document/Dataset (Batch). This enables automated workflows that analyze and extract information from entire document collections. --- # CloudFiles Account Setup (Salesforce: Document AI) https://help.cloudfiles.io/salesforce/cloudfiles-account-setup # CloudFiles Account Setup Steps to set up a CloudFiles Account in Salesforce after installing the CloudFiles Document AI app from the AppExchange. > Kind: Guide · Updated: Jul 4, 2026 Once the CloudFiles Document AI | OCR, Text Extraction, Classification is installed succesfully in your Salesforce instance, you will need to setup a CloudFiles Account for the Salesforce Org. You can setup the CloudFiles app from within Salesforce by following the below steps. ## Click on the App Launcher - Click on the App Launcher (9 dots icon) on top left of Salesforce and search 'CloudFiles'. ![](https://media.help.cloudfiles.io/dai-cloudfiles-account-setup-sf/01.gif) ## Home Tab and Data Region Selection - You will land on the "Home" Tab of the CloudFiles App - Before connecting your Salesforce org to CloudFiles, select your preferred data region from the dropdown. Your data will be stored in your selected data region's data centers. We currently support the following regions: - USA (default) - Australia - European Union - United Kingdom > **Note** — This region selection determines where all your CloudFiles data (accounts, attachments, resource details, etc.) is stored and ensures your data never leaves the selected region for compliance with data residency requirements. ![](https://media.help.cloudfiles.io/dai-cloudfiles-account-setup-sf/02.png) ## Connect Your Salesforce Org to CloudFiles - Once you've selected your region, click on "Setup" button to connect your Salesforce org to CloudFiles. ![](https://media.help.cloudfiles.io/dai-cloudfiles-account-setup-sf/03.png) ## Allow Access - This pops the "Allow Access ?" prompt. Click "Allow". ![](https://media.help.cloudfiles.io/dai-cloudfiles-account-setup-sf/04.gif) - This connects your Salesforce Org with CloudFiles. You can confirm the Account details and connection status in the "Settings" Tab. --- # Document Mapper Setup https://help.cloudfiles.io/salesforce/document-mapper-setup # Document Mapper Setup A complete, step-by-step reference for building a Document Mapper configuration in Salesforce — creating it and setting its objective, mapping standard, picklist, lookup, and child-relationship fields, testing against sample documents, and reviewing and monitoring runs. > Kind: Guide · Updated: Sep 1, 2026 This guide is a complete, step-by-step reference for building a Document Mapper configuration in Salesforce. It covers creating the configuration, mapping every type of Salesforce field, resolving lookups and child records, testing against real documents, and monitoring runs. For a conceptual overview of what Document Mapper is and where it fits, see the Document Mapper feature guide. A configuration is a reusable set of rules that tells Document Mapper what to extract from a document and where to write it in Salesforce. Each saved configuration has a unique Config ID that can be reused across list view buttons, detail page buttons, and the Document Mapper Flow Action. The workflow has these stages, each detailed below: - Create the configuration and set its objective. - Add and map fields. - Test against sample documents. - Save to generate the Config ID. - Attach the configuration to a button or Flow. - Review and approve runs that are held for review. - Monitor runs. ## Create the Configuration In the CloudFiles app, open the Document AI tab and select Document Mapper to see your existing configurations. Select Create New Configuration to open the setup dialog. ![The Create New Mapper Configuration dialog with fields for name, Salesforce object, objective, description, and post-run behavior](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/create-dialog.png) In the dialog, provide the following: - Enter a Configuration Name (required). Choose a name you will recognize later in the list — for example, Vendor Invoice → Account. - Select the Salesforce Object (required) — the object records will be written to (for example, Account). This choice determines which fields, lookups, and child relationships become available to map, so it cannot be changed casually later. - Choose the Mapper Objective (required) by selecting one of the two cards: | Objective | What it does | |---|---| | Create a New Record | Extracts and creates a record of the selected Salesforce object from each document. Choose this when every document should produce a fresh record. | | Update an Existing Record | Matches an existing record of the selected Salesforce object first, then updates its fields and/or creates child records against it. Choose this when documents carry data that belongs on records you already have. | - (Optional) Enter a Description to note what the configuration is for. This is helpful when several configurations exist for the same object. - Under When automation runs finish, choose what happens after each production run: | Option | Behavior | |---|---| | Auto approve | The run processes the document end to end — extraction, matching, and record creation — and commits the result to Salesforce automatically when it finishes, logging the run as Approved. No human step. Use once you trust the mapping. | | Send to review queue | Results are held with status Pending Review; nothing is written until a person approves it. Use while validating, or for high-stakes objects. See Review and Approve Runs below. | - Select Save & Proceed. The field mapping workspace opens. This setting is the default for the whole configuration. Independently of it, an individual run can still be routed to review by a fallback — for example, a lookup that finds no match or several matches. Such a run lands in the same review queue even when the configuration is set to Auto approve. > **Writes respect your Salesforce rules** — When a run commits, it creates and updates records through standard Salesforce DML, so it is subject to the same constraints as any other write. A run can fail if the extracted data violates a validation rule, is missing a required field, uses a value outside a restricted picklist, is blocked by field-level security or sharing, or hits any other DML or trigger error. Failed writes are surfaced on the run record — see Monitor Runs, where you can review the error and Reprocess. ## The Field Mapping Workspace The workspace has three areas: | Area | Purpose | |---|---| | Mapped Fields (left) | The list of fields you have added, grouped by role | | Field editor (center) | The settings for whichever field is selected | | Document preview (right) | Where uploaded test documents appear | ![The field mapping workspace with the Mapped Fields rail, the field editor, and the document preview pane](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/block-11-b927374a.png) Fields are grouped automatically into three sections in the left rail, each with a live count: - Main Record — fields written directly to the main record being created or updated. - Lookups — reference fields that resolve to another Salesforce record, either by matching an existing one or via a flow (see Lookup Fields below). - Child Relationships — related records created alongside the main record. Adding a field. - Select the Add field to map search box at the top of the left rail. - Type part of the field's name or API name. Matching fields from the selected object appear in the dropdown. - Select the field. It is added to the appropriate group — Main Record, Lookups, or Child Relationships — automatically, based on its type. - Select the field in the left rail to open its editor in the center panel. > **Deleting a field** — To remove any mapped item, select the trash icon on its row: a ✓ (confirm) and ✗ (cancel) appear in its place, and the item is deleted only when you select the ✓. Fields inside a child relationship are deleted a little differently — see Child Relationships below. Each field row shows the field's label, its API name, and a type badge — TEXT, PICKLIST, CURRENCY, DATE, REFERENCE (lookup), CHILD RELATIONSHIP, and so on. Required fields carry a red asterisk and a red dot; you must map these before the configuration can run. The sections below describe the editor for each field type. ### Mapping Fields Document Mapper can map any field on the object — Text, Number, Currency, Date, Percent, Checkbox, Email, Phone, Picklist, Lookup, and child relationships. Most fields are mapped the same way, with a single Source Mapping prompt. Three types offer extra configuration and have their own steps below: picklists, lookups, and child relationships. To map a field with a Source Mapping prompt: - Select the field in the left rail. - In the Source Mapping box, describe in plain language how the value should be found in the document. - Move to the next field. The AI extracts the value at run time and formats it to the field's data type automatically. Guidance for writing a strong source-mapping prompt: - Name the location or label the value appears under — “the total in the Payment Terms section,” or “the company in the Company Contact Information block.” - Disambiguate similar values — if a document has more than one date, say “the invoice date, not the due date.” - Only describe format when it matters — the AI coerces values into the field's type, so you rarely need to specify date formats or currency symbols. - Leave a field unmapped if you do not want it populated; there is no penalty for mapping only some fields. ### Picklist Fields A picklist field is constrained to its Salesforce Allowed Values, so the AI can only return one of those valid options. ![A picklist field editor showing a Source Mapping box and the list of allowed values with one value expanded for a per-value prompt](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/picklist-values.png) - Select the picklist field in the left rail. The editor shows a Source Mapping box and the full list of Allowed Values (with a count). - In Source Mapping, describe where the value comes from in the document, the same as any other field. - Add a per-value prompt for any value that needs clarification (optional): - Select a value in the Allowed Values list to expand it. - In the “Tell the AI when this value should be chosen” box, describe the condition under which that value applies — for example, choose Address only when a full street address is present, or City when only a city is given. - Repeat for any other values the AI might otherwise confuse. - Leave values without a prompt if their meaning is already clear from the label. Per-value prompts are optional and only needed for ambiguous options. ### Lookup Fields A lookup (REFERENCE) field points to another Salesforce record, so mapping it means resolving the document to that record's Id. You choose how the Id is resolved using the three cards at the top of the editor: - Get Existing — match a record that already exists by describing the match in plain language. If no record matches, the lookup is left unresolved and the document is routed according to your fallback setting; a record is never created. - Create New — always create a new record from fields extracted off the document, and link the lookup to it. No matching is attempted. - Call Flow Action — hand resolution to a custom Salesforce Flow, which can find an existing record or create a new one and return its Id. Do not update if a value is already present appears on all three operations. When it is checked and the lookup on the target record already holds a value, that value is kept and the document does not overwrite it. Use it when documents may be reprocessed and the link written the first time should win. For a deeper reference on choosing and writing a resolution strategy — the deterministic, fuzzy, context, static, and multi-strategy approaches, with a sample resolution prompt for each — see Lookup Strategy Resolution. Method 1 — Get Existing. Use Get Existing to find the record with a matching plan you build in plain language. You describe the strategy in the Resolution Chat, and the AI compiles it into a deterministic execution plan — a fixed sequence of steps and queries that runs the same way every time, so results are predictable rather than left to the AI's discretion at run time. ![A lookup field set to Get Existing, showing the empty Resolution Chat with suggested strategy patterns](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/block-33-ffbed790.png) Matching strategies. Three kinds of strategy are available. You can use one on its own or combine them into a chain. | Strategy | When to use it | How to phrase it | |---|---|---| | Exact match | The document carries a reliable, unambiguous key — account number, email, external Id. | Match by Account Number where the value equals the parsed account number. | | Fuzzy match | The document and record may differ slightly in spelling, spacing, punctuation, or casing (e.g. “Acme Corp.” vs “Acme Corporation”). Each fuzzy step has a confidence threshold (e.g. 85%) — raise it to be stricter, lower it to be more forgiving. | Fuzzy match the parsed company name against the Account Name field at 85% confidence. If more than one account clears the threshold, narrow it down using the Billing City parsed from the document, and if still ambiguous, send to the review queue. | | Multi-step (chained) | You want to lead with a precise key and fall back to looser matches. Runs strategies in order, falling through only when the current one finds no match. | Try the account number exact match first; if not found, fuzzy match on company name; if still not found, fuzzy match on billing email. | Building the plan. - Select the lookup field, then select the Get Existing card. - In the Resolution Chat, describe how to find the matching record. You can start from one of the suggested patterns shown in the chat and edit it. - Send the message. The AI replies, may ask a clarifying question (for example, whether to exclude the current record to avoid a parent account matching itself), and generates the Current Plan. - Review the Current Plan. Each step is numbered and shows exactly what will run: - the step type (for example, FUZZY MATCH) and, for a fuzzy step, its confidence threshold (for example, 85%); - a plain-language summary of the step (for example, “Match parent by Account Name”); - the field-to-value binding (for example, Name ← {company_name}); - the underlying SOQL query it will execute (for example, SELECT Id FROM Account WHERE Name = :company_name); - what happens next — whether to continue to the next step, and how to handle one match versus several. A green check on the Current Plan header indicates the plan is complete and valid. - Refine if needed by typing further instructions in the chat (for example, “raise the threshold to 90%,” “also match on Billing City,” or “exclude the current record”). The plan regenerates with each refinement. To discard everything and begin again, select Start over. - Set the Fallback Behavior — what happens after the plan runs and the outcome is not a single clean match. The two outcomes are handled differently: - If no match is found — select the behavior from the dropdown. Send to Review Queue holds the document for a person rather than writing an empty lookup. - If multiple matches are found — always Send to Review Queue. This is fixed and cannot be changed: an ambiguous match is never written. ![A generated resolution plan showing a fuzzy match step at an 85 percent threshold with its field binding and SOQL query, plus fallback behavior](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/block-38-afbe2956.png) Get Existing only matches records that are already in the org. It never creates one, so a document that does not resolve to exactly one record is always routed by one of the two fallbacks above. Method 2 — Create New. Use Create New when the document should always produce a fresh record for the lookup to point at — no search, no matching plan, no Resolution Chat. This suits documents that routinely introduce records the org does not have yet (a new supplier on every intake form, a new project record per signed order), or staging objects where every document is meant to stand on its own. If existing records should be reused where they exist, use Get Existing instead; if creation needs to happen only under certain conditions, use Call Flow Action. ![A lookup field set to Create New, showing the New Record Fields section with a required Account Name field and the If Creation Fails setting](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/block-41-c11accce.png) - Select the lookup field, then select the Create New card. - Under New Record Fields, configure how each field on the new record should be populated. Required fields on the target object appear automatically and are marked with a red asterisk (for example, Account Name on Account) — the mapping cannot be saved until each one is populated. Use Add a field to map… to include any other fields you want set at creation, such as Billing City or a record type. - Configure each field as you would on the main record. Each row shows the field label, its API name and type, and the extraction prompt beneath it (for example, Name · TEXT · find name of company); select the row to open and edit it. - Review If creation fails. Documents whose record cannot be saved are sent to the review queue. This is fixed and cannot be changed, and it applies only when Salesforce itself refuses the save — a validation rule, a missing permission, a duplicate rule. Create New has no other fallback. Nothing is searched for, so there is no no-match or multiple-match outcome to route; a refused save is the only failure. Because every document creates a record, the same entity appearing on two documents produces two records. Pair Create New with a Salesforce duplicate rule, or use Get Existing, if that matters for the object. Method 3 — Call Flow Action. Use Call Flow Action to resolve the record with a custom Salesforce Flow — appropriate when the matching logic is too complex for a query, or should reuse existing automation. Because the flow can contain any logic, it can both search for a record and create one if nothing is found, returning either Id — the “match, then create” behavior that neither Get Existing nor Create New provides on its own. All resolution logic lives in the flow. Document Mapper does not search, retry, or fall back to another method; it passes the inputs in and uses the Id that comes back. ![A lookup field set to Call Flow Action, with a flow selector, flow input prompts, and a fallback for when the flow returns null](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/block-47-b1646675.png) - Select the lookup field, then select the Call Flow Action card. - Under Flow, select an autolaunched flow that resolves to a record Id from the dropdown. The flow must be autolaunched and must return a single record Id. Select Open in Flow Builder if you need to inspect or edit the flow in Salesforce. - Under Inputs to the Flow, each of the flow's input variables appears with its own prompt box. For each input, write a prompt describing what value to pass from the document (for example, for a contactRecord input, “the primary contact named on the order form”). - Review If flow returns null. When the flow errors out, or runs cleanly but returns no record Id, the document is sent to the review queue. This is fixed and cannot be changed — which is why the flow needs to handle every case it is meant to resolve. ### Child Relationships A child relationship creates several related records from a single document — for example, multiple line items, partners, or purchase orders tied to one parent. In Salesforce, these are the relationships exposed on the parent object; custom relationship names end in __r. ![A child relationship editor showing Collection Settings with a row detection prompt and the fields to map on each row](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/child-relationship.png) - Add the child relationship from Add field to map — it appears under the Child Relationships group. Select it to open its editor. - Under Collection Settings, fill in the Row detection prompt (required). Describe how to identify each row in the document, so the mapper knows where one child record ends and the next begins. Be specific about what marks the start of a row and about not merging or splitting rows — for example: “Detect each invoice line item as a separate row in the line items table. A row begins with an item code or SKU (if present) followed by a description, quantity, unit price, and line amount. Each physical row in the table must produce exactly one detected line item.” - Under Fields on each row, select Add another field and choose a field of the child object. It is added to the row's field list with its type badge and an expand arrow. - Select a row field's expand arrow to open its editor. Here you set its Source Mapping (or, for a lookup, its resolution — see below). A breadcrumb (for example, PURCHASE_ORDER__C › ORDER_LINE_ITEMS__C) shows you are editing a field within the child collection; the back arrow returns you to the row's field list. > **Deleting a field on a row** — Fields under Fields on each row do not have a trash icon on their row — only an expand arrow. To delete one, open it with the expand arrow; its trash icon appears at the top of the field editor. Select it, then confirm with the ✓ (or cancel with the ✗). The child relationship itself is deleted from the Mapped Fields list using the trash icon on its row, with the same ✓ / ✗ confirmation. - Repeat Steps 3–4 for every field the child records need. Required fields on the child object (marked with a red asterisk) must be mapped, or the row cannot be written. - If a field on the row is itself a lookup, configure it as described below. ![A child relationship configured for invoice line items, with a filled-in row detection prompt and an invoice open in the preview pane](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/line-item-extraction.png) Lookups inside child rows. A child object often points at another record — for example, each order line item references a Product, or each partner references an Account. Document Mapper resolves these row-level lookups once per row: as it detects each row, it runs that row's resolution plan against the values parsed from that row and links the result to the child record it is about to create. Child-collection lookups support Get Existing only — Create New and Call Flow Action are not available inside a child row, and the editor displays this notice at the top of a child-row lookup. - In Fields on each row, add the lookup field of the child object. It appears as a lookup (LOOKUP / REFERENCE) row with an expand arrow. - Open it. A breadcrumb at the top shows you are inside the child collection (for example, ACCOUNT › ACCOUNTPARTNER), and a back arrow returns you to the row's field list. Build the match in the Resolution Chat exactly as for a main-record Get Existing lookup: describe the strategy, review the generated Current Plan, and refine as needed. The parsed values the plan references come from the current row (for example, a per-row product_code). - Set the row-level Fallback Behavior — If no match is found and If multiple matches are found (for example, Send to Review Queue for both). Two rules apply to child-row lookups: - Existing records only. As with any lookup, no new record is created to satisfy it. If a row's lookup cannot be resolved, that row is handled according to its fallback setting. - Independent per row. Each row resolves its own lookup separately, so one document can link twenty line items to twenty different products in a single run. ![A lookup field inside a child collection, resolved with Get Existing](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/child-row-lookup.png) ## Test the Configuration Test against real documents before saving. Testing runs asynchronously, so you can start a run and return to it later. - Select Upload Files (in the preview pane, or from the file dropdown at the top right) and choose one or more sample documents. Uploaded files appear in the dropdown and render in the preview pane, where you can page through, zoom, and search. ![The document dropdown at the top of the preview pane showing uploaded files and an Upload Files option, over a sample invoice](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/upload-files.png) - Select Run Test. The Select sources step opens. - Choose which uploaded documents to run on — use Select All, or tick a subset. Testing on fewer documents uses fewer tokens. - Select Run Test to begin processing. A run can take a little while; you can leave the screen and return — processing continues in the background. ![The Select sources step of a test run, with Select All checked and Running on 2 of 2 documents](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/select-sources.png) - When the run finishes, review the Test Results, which open with two tabs: - Record — every mapped field with the value the AI extracted. Expand any field to see the AI's reasoning and a confidence score (for example, 0.98). Fields that could not be populated show a dash. - Related Objects — each child relationship with the number of rows extracted, expandable into a table of the extracted values. ![The Related Objects tab of the test results, showing extracted order line items with a 0.97 confidence score](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/test-results-related.png) - Adjust prompts, matching plans, and fallback settings based on the results, then re-run. Repeat until the output is correct. To reopen the most recent result at any time, select Preview Test Run. ## Save the Configuration Select Save. This generates (or updates) the configuration's Config ID and returns you to the Document Mapper list. Copy the Config ID — you will need it when attaching the configuration to a button or Flow. ## Attach the Configuration Put the Config ID to work through any of these methods: | Method | Use it to | |---|---| | List View Button | Upload a document and create new records directly from a list view. | | Detail Page Button | Upload a document against an existing record to update its fields or add related records. | | Document Mapper Flow Action | Call the configuration from within a Salesforce Flow, passing the Config ID and the source document. | > **Button setup** — The List View and Detail Page buttons are standard Salesforce custom buttons that open Document Mapper with your Config ID. The exact click-by-click button setup is not shown here yet and will be added in a later update — check your button definitions against your org before rolling out to users. ## Review and Approve Runs When a run is set to Send to review queue — either because the configuration's default is Send to review queue, or because a fallback routed it there — the run does not write to Salesforce on its own. Instead it is held for a person to check and approve. Both the queue and the approval happen on the CloudFiles DocAI Run object. > **Adding the DocAI Runs tab** — The CloudFiles DocAI Runs tab is not added to the CloudFiles app by default. To make the review queue easy to reach, an admin can add the object's tab or a related list to the relevant app or record pages — for example, a “Pending Review” list view on a home page — so reviewers can find waiting runs without cluttering the app. - Open the CloudFiles DocAI Runs tab and find the runs with Status: Pending Review. These are the items waiting on you — filtering the list view by Status is the simplest way to see just the queue. - Open a pending run. The record shows the run header — Status, Type, Config Id, Config Version, Parent Record Id, and Owner — with the source document rendered on the right for side-by-side checking. ![](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/block-69-fad6ad9d.png) - Check the extracted data: - The Details tab shows the main-record fields that were extracted. - The Related tab shows each child relationship with its extracted rows in a table (for example, “Order Line Item (20)”). - Correct anything that is wrong before approving: - Edit a cell in place using its edit (pencil) control. - Use the row dropdown to act on an individual row. - Select Add Row to add a record the extraction missed. - Choose an action in the footer: | Action | Result | |---|---| | Save Progress | Save your edits and keep the run in Pending Review to finish later. Nothing is written to Salesforce yet. | | Reject | Discard the run without writing anything to Salesforce. | | Approve & Write to Salesforce | Commit the reviewed data. The main record and all related rows are written, the run leaves the queue, and the Document Mapper Run event is published (see Monitor Runs). | Only Approve & Write to Salesforce writes data; until then the extracted results live only on the run record. ## Monitor Runs Every execution — in testing or in production — is logged as a CloudFiles DocAI Run record. ![The CloudFiles DocAI Runs All Runs list view showing runs with their type, status, and created date](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/block-65-e6446a9b.png) - Open the CloudFiles DocAI Runs tab (or the All Runs list view) to see the full, searchable history. - Open any run to view its Status, Type (Doc Mapper), Config Id, Config Version, Parent Record Id, and Owner. - If a run shows Failed, open it to read any available error detail. - Select Reprocess to retry a failed run. Reprocessing creates a new run record rather than overwriting the original, so the history stays intact. ![A failed CloudFiles DocAI Run showing a Processing failed message and a Reprocess button](https://media.help.cloudfiles.io/dai-document-mapper-setup-sf/run-failed.png) A Document Mapper Run event is published only when a run successfully writes its records to Salesforce — you can subscribe to it for custom post-processing automation. For a run held in the review queue, the event is not published when it enters Pending Review; it fires only after you select Approve & Write to Salesforce and the write succeeds. Runs that are rejected, that fail, or that are still awaiting review do not emit the event. For a worked end-to-end example, see the Document Mapper Tutorial. --- # Lookup Strategy Resolution https://help.cloudfiles.io/salesforce/lookup-strategy-resolution # Lookup Strategy Resolution How Document Mapper resolves Salesforce lookup fields — the deterministic, fuzzy, context, static, multi-strategy, and create-new approaches you can define, the use cases each one fits, and the sample resolution prompt or field mapping to enter for each. > Kind: Guide · Updated: Sep 1, 2026 When a Document Mapper writes to a Salesforce object, any lookup field on that object needs a record to point at. CloudFiles resolves lookups using a resolution strategy that you define once while creating the mapper configuration. The strategy tells CloudFiles how to find the right record: match an identifier from the document, match a name and break ties on a second field, use the record the mapper was launched from, create a new record from the document, or try several approaches in order. This article explains each strategy, shows the Salesforce use cases each one fits, and gives the sample resolution prompt to enter for each case. Use it when you are configuring a mapper that writes to an object with one or more lookup fields. For the full configuration workflow this fits into, see Document Mapper Setup. ## How lookup resolution works Each lookup field on a mapper has an operation, and for Get Existing, a resolution strategy. The operation controls the outcome: | Operation | Result | If it does not resolve | |---|---|---| | Get Existing | Finds a record that already exists. It never creates one. | No match is handled by the fallback you select. Multiple matches always go to the review queue. | | Create New | Always creates a new record from values extracted off the document and points the lookup at it. No matching is attempted. | Only a refused save can fail, and it goes to the review queue. | | Call Flow Action | Runs an autolaunched Flow you have built and uses the record it returns. Because the Flow can hold any logic, it can search first and create only if nothing is found. | A null return goes to the review queue. | Do not update if a value is already present sits above the resolution strategy and applies to all three operations. When it is checked and the lookup on the target record already holds a value, that value is kept and the document does not overwrite it. Use it when documents may be reprocessed and the link written the first time should win. For Get Existing, you describe your strategy in the resolution chat. CloudFiles converts your description into a deterministic execution plan and saves it with the mapper. At run time, CloudFiles follows the saved plan step by step. The AI reads the document and extracts values, but it does not decide which record matches. The comparison logic in the plan does that, which is why the same document and the same records always produce the same result. Open the resolution chat by selecting the lookup field in the mapper's field list, choosing Get Existing, and typing your strategy in the chat box. Until you do, Current Plan reads Not generated yet. The plan appears below the chat and updates as you refine it. Create New has no resolution chat, because nothing is searched for. Instead you configure the fields the new record is created with — see strategy 6 below. ## Strategy reference Strategies 1 to 5 are resolution strategies you describe in the resolution chat under Get Existing. Strategy 6 is its own operation, configured with field mappings rather than a prompt. ### 1. Deterministic match Purpose: Find a record by matching a value from the document against a field that uniquely identifies the record. When to use it: The document carries an identifier that already exists on your Salesforce records. Tax IDs, customer account numbers, policy numbers, purchase order numbers are all good candidates. What you need: A field on the target object holding that identifier, ideally marked as External ID and Unique. Resolution prompt: ```text Match the 'Tax ID' extracted from the document against Tax_ID__c on Account. ``` Notes: This is the most reliable strategy and should be your first choice whenever the document contains an identifier. Because the match is exact, a formatting difference between the document and the record will cause a miss. If your records store tax IDs with separators and your documents do not, normalize one side before you rely on exact matching. ### 2. Fuzzy match Purpose: Find a record by matching a name or description that will not be character-for-character identical, then narrow multiple candidates using additional fields. When to use it: The document has no identifier and the only common value is a company name, person name, or address. Vendor invoices from small suppliers, signed forms, and scanned correspondence usually fall here. What you need: The name field to match against, a similarity threshold, and at least one disambiguator field that appears both in the document and on the record. Resolution prompt: ```text Fuzzy match the parsed 'Company Name' from the document against Account.Name with a similarity threshold of 85%. If more than one Account matches, disambiguate using BillingCity and BillingCountry that are present in the document. ``` Notes: Always configure at least one disambiguator. Company names repeat across regions and legal entities, and a name-only match on a large Account table will return several candidates more often than admins expect. Set the threshold based on how clean your source documents are. Start at 85% and lower it only if you see false misses on documents you have inspected. ### 3. Context Reference Purpose: Point the lookup at a record that CloudFiles already knows about at run time, without searching for it. When to use it: Two situations, both of which use the same mechanism. The first is a child record pointing back at its parent. When a mapper creates a parent record and its related child records in the same run, each child's lookup to the parent resolves to the parent created moments earlier in that run. Invoice and Invoice Line Items, Order and Order Products, Claim and Claim Items, all follow this shape. The second is a record supplied by where the mapper was launched. When a mapper runs from a Salesforce record page, the ID of that page's record is available to the mapper. A lookup can point at it directly. What you need: For the parent case, a child collection configured on the mapper. For the launch case, the mapper must be launched from a record page whose object type matches the lookup's target object. Resolution prompt for the parent case: ```text Use the Invoice record created by this run. ``` Resolution prompt for the launch case: ```text Use the record from the page the mapper was launched from. ``` Notes: For the launch case, the object type must match. A lookup to Account will not resolve from a Case record page. Configure a fallback so the run does not fail when the mapper is triggered from somewhere else, such as a Flow or the API, where no page record exists. ### 4. Static Reference Purpose: Point the lookup at the same fixed record on every run. When to use it: The lookup represents a constant in your process rather than something that varies per document. Common cases include an intake channel record, a processing queue owner, a single legal entity in an org that only operates one, a default price book, or a partner record used for all documents from one source. What you need: The Salesforce record ID of the target record. Resolution prompt: ```text Always use the Intake_Channel__c record with ID a0X5g000004ABcDEA2. ``` Notes: Record IDs differ between sandbox and production. If you deploy mappers across environments, record the ID mapping in your deployment notes and update the strategy after each deployment. Where the constant record can be found by name, prefer a deterministic match on the name field instead, which survives deployment without edits. ### 5. Multi-strategy cascade Purpose: Try several strategies in a defined order and use the first one that finds a record. When to use it: Your documents arrive from mixed sources with varying quality. Some carry an identifier, some carry only a name, and some correspond to a customer who is not in Salesforce yet. What you need: The inputs for each strategy in the chain, ordered from most reliable to least. Resolution prompt: ```text First, match the parsed 'Tax ID' from the document against Tax_ID__c on Account. If no Account is found, fuzzy match the parsed 'Company Name' against Account.Name at 85% similarity and disambiguate using BillingCity. If still no Account is found, use the record from the page the mapper was launched from. ``` Notes: Order matters. Put deterministic steps before fuzzy steps so a clean identifier is never overridden by a name guess. Keep the chain short. Three steps covers almost every real case, and longer chains become hard to reason about when a run produces an unexpected result. A cascade runs entirely within Get Existing, so it cannot end in record creation. If unmatched documents should produce a record rather than wait for review, use Call Flow Action and put the search-then-create sequence in the Flow. ### 6. Create New Purpose: Create a record from values extracted off the document and point the lookup at it, on every run. When to use it: The lookup's target record is expected to be new each time, so searching for it is wasted work. Intake forms that introduce a supplier or applicant the org has never seen, staging objects where each document is meant to stand on its own, and per-document records such as a shipment or a submission all fit. If existing records should be reused where they exist, use a Get Existing strategy instead. If creation should happen only when nothing matches, use Call Flow Action. What you need: Every required field on the target object, with an extraction prompt for each. Required fields appear in the New Record Fields list automatically and are marked with a red asterisk; the mapper cannot be saved until each one is configured. What you configure: Create New is set up with field mappings rather than a resolution prompt. - Select the lookup field, then select the Create New card. - Under New Record Fields, configure each field. Each row shows the field label, its API name and type, and its extraction prompt beneath — for example, Name · TEXT · find name of company for Account Name. Select a row to edit it. - Use Add a field to map… to populate optional fields at creation as well, such as BillingCity, a record type, or an external ID carried on the document. - Review If creation fails. Documents whose record cannot be saved are sent to the review queue. This is fixed and cannot be changed, and it applies only when Salesforce itself refuses the save — a validation rule, a missing permission, a duplicate rule. Notes: Create New has no other fallback. Nothing is searched for, so there is no no-match or multiple-match outcome to route; a refused save is the only failure. The trade-off is duplicates: the same entity appearing on two documents produces two records. Populate an external ID field in the New Record Fields list and back it with a Salesforce duplicate or matching rule if that matters for the object. Fill in more than the required fields where the document supports it — a record created with only a Name is harder to reconcile later than one carrying an address or an identifier. ## Choosing a strategy Use this table to pick a starting point. | What the document contains | What you know at run time | Strategy | |---|---|---| | A unique identifier that exists on your records | Nothing else needed | Deterministic match | | A company or person name only | A second field to break ties | Fuzzy match | | Nothing relevant to this lookup | The mapper creates the parent in the same run | Context reference, parent variant | | Nothing relevant to this lookup | The mapper runs from the target record's page | Context reference, launch variant | | Nothing relevant to this lookup | The record is always the same | Static reference | | Different values depending on the source | Several of the above apply | Multi-strategy cascade | | The details a new record needs | The record will not already exist | Create New | | The details a new record needs | It may or may not exist, and creation must be conditional | Call Flow Action | ## Handling ambiguity and failure Each operation has exactly one way to fail, and every failure ends in the same place. | Operation | Failure | Configurable | |---|---|---| | Get Existing | No record matched | Yes — select the behaviour under If no match is found | | Get Existing | More than one record matched | No — always sent to the review queue | | Create New | Salesforce refused the save | No — always sent to the review queue | | Call Flow Action | The Flow returned no record Id | No — always sent to the review queue | A run sent to the review queue pauses with status Pending Review. A reviewer opens it, picks the correct record or corrects the extracted value, and completes the run. For a Create New lookup, the reviewer can also pick an existing record instead of creating one. Because only the no-match case is configurable, the fallback you choose there is the only lever you have on lookup failure. Everything else is decided by the plan, the object's validation rules, or the Flow. Every run is stored as a record of the CloudFiles_DocAI_Run__c object in Salesforce. Open the Doc AI Runs list view to see all runs alongside their status, the mapper configuration used, and the user who triggered them. Runs waiting on a lookup decision appear there with status Pending Review. --- # Use Document Mapper Configuration https://help.cloudfiles.io/salesforce/use-document-mapper-configuration # Use Document Mapper Configuration After creating and testing a Document Mapper configuration, you can make it available to users or automations through Salesforce buttons or Salesforce Flow. > Kind: Guide · Updated: Jul 4, 2026 After creating and testing a Document Mapper configuration, you can make it available to users or automations through Salesforce buttons or Salesforce Flow. ## Use the Configuration in Salesforce Flow Document Mapper configurations can also be executed from Salesforce Flow using the Document Mapper Open the Salesforce Flow and add the Document Mapper Flow Action. Provide the Document Mapper Configuration Id and configure the required file inputs. Save and activate the Flow. When the Flow runs, Document Mapper processes the document using the selected configuration and returns the extracted values to the Flow. These values can then be used in subsequent Flow elements for automation, record creation, approvals, notifications, or integrations. > **Find Your Domain** — Before configuring buttons, determine the Visualforce domain used by Document Mapper.Navigate to Setup → Visualforce Pages.Open documentMapperAction.Click Preview.Copy the domain from the URL.The domain will be in the following format:https://yourdomain.vf.force.com ## Setup List View Button To Create Record To allow users to trigger Document Mapper directly from a Salesforce list view, create a custom List View Button on the object where the action should be available. - In Salesforce, go to Setup → Object Manager - Select the target object (for example, the Business Document object) - Open Buttons, Links, and Actions and create a new button - Configure it as a List Button - Set Content Source to URL - Choose to display it in the existing window (optionally without the sidebar or header, based on your org preference) - Set the button URL using the following template by replacing with your domain (obtained using the Visualforce Pages method above) and {your_config_id} with the Document Mapper configuration ID: ```text https://.vf.force.com/apex/documentMapperAction?configId={your_config_id} ``` ![](https://media.help.cloudfiles.io/dai-use-document-mapper-configuration-sf/01.png) ![](https://media.help.cloudfiles.io/dai-use-document-mapper-configuration-sf/02.png) After saving the button, add it to the list view by editing the Search Layouts section for that object and moving the new button into the list of visible buttons. Once this setup is complete, users will be able to select records from a list view, click the new button, upload their document, and run the Document Mapper process seamlessly—without having to open or understand the backend configuration. ![](https://media.help.cloudfiles.io/dai-use-document-mapper-configuration-sf/03.png) ## Setup Record Detail Page Button To Update Record To allow users to launch Document Mapper from an individual record, create a Detail Page Button on the target object and add it to the page layout. - Navigate to Buttons, Links, and Actions → New Button or Link on the required object. - Set Display Type to Detail Page Button and Content Source to URL. - Paste the Document Mapper URL in the button URL field using the format below (replace {your_config_id} with your configuration ID): https://.vf.force.com/apex/documentMapperAction?configId={your_config_id}&recordId={!Object.Id} - Click Save. - Go to Page Layout, and add the button under Salesforce Lightning Experience Actions so it appears on the record detail page. > **Note** — recordId must be the current record’s Id. Use the object’s merge field in the button URL—e.g., {!Account.Id} for Account, {!Opportunity.Id} for Opportunity, or the corresponding {!ObjectApiName.Id} for custom objects. ![](https://media.help.cloudfiles.io/dai-use-document-mapper-configuration-sf/04.png) --- # Workflows (Configuration) https://help.cloudfiles.io/docs/dai-workflows-sf/ # Workflows A workflow is a reusable, ordered sequence of steps that reads a document, checks what it finds against your Salesforce records, decides what to do by rules you write, and writes the result back. > Kind: Guide · Updated: Sep 4, 2026 A workflow is a reusable, ordered sequence of steps that reads a document, checks what it finds against your Salesforce records, decides what to do by rules you write, and writes the result back. This article covers everything around the steps: creating the workflow, setting its review policy, building the launch form your team fills in, wiring steps to each other, and validating, testing, and publishing. The steps themselves are covered in three companion articles — Read documents (AI), Salesforce, and Logic. Before you start, confirm your org has a completed CloudFiles connection for Document AI, and that you hold the CloudFiles Standard User or CloudFiles Admin User permission set — either grants the Document AI tab, and there's no separate permission for Workflows, so anyone who can open Document AI can create, publish, run, and approve or reject a workflow. ## Create the Workflow - Open the CloudFiles app, click the Document AI tab, and choose Workflows from the left navigation. - Click New workflow. This creates an empty workflow and drops you directly into the builder — a canvas on the left for your settings and step list, and an inspector on the right that appears once you select a step. - Under Name, give the workflow a short, clear name — up to 80 characters, shown with a live counter. Leaving it blank shows Give this workflow a name and blocks both Publish and Test run later on. - Optionally, fill in What this workflow does with a sentence or two (up to 400 characters) so teammates know what it's for. This field is for humans only and has no effect on how the workflow runs. - Choose a Review policy. This controls whether the run stops for a person to approve before it writes to Salesforce, and how often. ![A new workflow's settings, with the Review policy dropdown open on its three options. Test run and Publish v1 stay disabled until the workflow has a name.](https://media.help.cloudfiles.io/dai-workflows-sf/insert-3-7e7ffa40.png) | Policy | What happens | When to use it | |---|---|---| | Straight through | Runs end to end with no human stop; every write fires automatically. This is the default for a new workflow. | A process you already trust — strict lookups, tolerant data, low blast radius if something's off. | | Hold before the first write | Pauses before the first Salesforce write and waits for someone to approve. When looping over several items, it holds once per item — approving item 1 never releases item 2 onward unreviewed. | The common middle ground. | | Approve every write | Pauses before every single Salesforce write, each approved or rejected individually. | High-value or hard-to-undo records, or building confidence in a new workflow. | A short explanation of whichever option you've picked appears under the selector. You can also force a hold on one specific write later, using Require approval for this write on that step — see Salesforce. That setting can only add a hold; it can never remove one the policy already requires. Everything you enter from here saves itself into a draft automatically — there's no Save button. Nothing runs a draft except Test run, so you're free to build without it going live by accident. ## The Launch Form The launch form is what your team fills in — or what a Flow supplies — to start a run, under the heading When this runs, it starts with. It's built from two kinds of input. ### Documents this workflow runs on Each row is one document slot. - Click to add a slot. - Give it a Document name — letters, digits, and underscores only; spaces and dots are stripped as you type. Left blank, slots auto-name themselves document, document_2, and so on. This name is how later steps refer to it. - Choose How many: One document for a single file, or Several documents (a collection) for related files uploaded together — a collection is what you loop over with a For each step later. A collection slot holds 1–50 files. - Repeat for each document the workflow needs to read. Use Remove document to delete a slot. Inline validation catches a blank name (Name this document), an invalid character (Letters, digits, underscore — no spaces or dots), and a name already used by another slot or field. A workflow doesn't have to read any documents. With zero slots declared, the card reads: "This workflow doesn't read any documents — it runs on the values below. Add a document only if a run needs one." ### Extra values the run needs Each row is one typed launch-form field. - Click to add a field. - Give it a Field name — same character rules as document names; auto-named field_1, field_2 if left blank. - Set its Type: Text, Number, Date, or Checkbox. - Toggle Required / Optional. Required means the run cannot start without it. A checkbox is always optional, since it defaults to unchecked. - Optionally set a Label shown at launch — a friendlier name for the launch screen. Left blank, the field name is auto-formatted for display (orderAmount becomes Order amount). ![The launch form editor, showing a document slot and two typed fields with their required/optional toggles.](https://media.help.cloudfiles.io/dai-workflows-sf/block-18-d17174f6.png) A typical document-review launch form is one slot plus one field: a document slot set to One document, and a Text field marked Required carrying the Id of the Salesforce record the document belongs to. The document is what the AI steps read; the field is what the first lookup step queries on, which is what ties the uploaded file to the record it's checked against. > **Removal safety** — If you delete a document slot or a field that a step still refers to, a red panel appears: Remove or repoint these before publishing:, listing each one — for example, "Find the account" still uses the removed field "vendor_name". Publish is blocked until you either restore the field or repoint the step that used it. > **Record Id is always available** — When a workflow is launched from a Salesforce record — for example, from a Flow — that record's Id is automatically available to every step as Record Id. You can't declare a field or document slot with that name yourself. ## The Step Builder With the launch form in place, add the steps that do the work. - With no steps yet, click Add the first step. With steps present, click Add step at the bottom to append one, or the bare + between any two existing steps to insert one there. - In the Add a step picker, choose from three groups — Read documents (AI), Salesforce, and Logic. The Three Kinds of Step below summarizes what's in each. - Select the new step's card to configure it in the inspector on the right. Each card shows the step's display name and, underneath in monospace, its reference name — this is how other steps read its results. Cards also carry: - Move up, Move down, and Delete step controls on the right. - A colour bar by category: purple for AI steps, red for Salesforce writes, blue for Salesforce reads, grey for logic. - A Requires approval badge if that step is set to hold for approval on its own. - On a Decision step, its route chips — for example branch_1 → sf_update_1 and else → End run. ![The step builder canvas, showing step cards with reference names and route chips](https://media.help.cloudfiles.io/dai-workflows-sf/block-26-c7884c81.png) > **Order is the whole design** — A step can only read values produced by steps above it, so the sequence on the canvas is also the sequence of dependencies. If a step needs a value nothing above it produces, the fix is usually to move the step that produces it higher — not to rewrite the step that needs it. ### What every step's inspector has in common - An eyebrow reading Step followed by the step's type name, plus a Writes to Salesforce badge where relevant. - A Step name shown to people field, which relabels the card and its appearance in run history. - A step-specific Configuration section — this is the part that differs, and it's what each companion article documents. - An After this step choice: Continue to the next step, End the run, or, inside a loop, Next item (back to loop). - The Values you can use here reference picker — see Wire Steps Together with References below. - At the bottom, a red Fix before publishing panel listing anything wrong with that step. Two settings recur across most steps: - Value or ref — most fields accept either a fixed value or a reference to an earlier step's output. Insert references by clicking a chip in the reference picker rather than typing them. - Documents in scope — every AI reading step lets you choose which document slots it reads. Leave everything unchecked to read every document in the run. ## The Three Kinds of Step The picker groups every step into three categories, and the grouping is how a workflow is built rather than just a menu: AI steps read the document, Salesforce steps read and write your records, and Logic steps decide and repeat. Most document-review workflows chain all three in the same order — look up the record the document should match, compare the document against it with one AI step per check, decide the single outcome in a Decision step, then write that outcome back. Which is also why step order matters: each stage consumes what the stage above it produced. ![The "Add a step" picker, showing the Read documents (AI), Salesforce, and Logic groups with their one-line descriptions.](https://media.help.cloudfiles.io/dai-workflows-sf/block-36-d941016b.png) ### Read documents (AI) Three steps that look at an uploaded document and turn what's on the page into a value the rest of the workflow can use. All three take a Documents in scope setting, all three report a confidence score, and none of them touch Salesforce. | Step | What it does | |---|---| | Ask the document | Asks a free-form question of a document and captures the answer. | | Classify | Sorts a document into one of a fixed set of labels you define. | | Extract fields | Pulls structured, typed fields from a document against a schema you build. | Reach for Ask the document for a single fact or a verdict, Classify to route on a document's type, and Extract fields for a structured record — including a list of line items to loop over or bulk-create. > **Read documents (AI)** — Full settings, and the pattern for comparing a document against a Salesforce record, are in Read documents (AI). ### Salesforce Seven steps: two that find records, four that change them, and one that hands the run over to a Flow of your own. Every write honours the workflow's review policy, with the option to force an extra hold on one specific step. | Step | What it does | |---|---| | Find a Salesforce record | Queries records by conditions, like Flow's Get Records. | | Search Salesforce records | Fuzzy prefix search over an object, tolerant of near-misses in a name. Optionally lets AI pick the best match. | | Create Salesforce record | Writes a new record, mapping step values onto object fields. | | Update Salesforce record | Updates an existing record by id. | | Delete Salesforce record | Deletes an existing record by id. | | Create Salesforce records (bulk) | One record per item in a list, as a single bulk write. One approval covers the batch. | | Run a Salesforce Flow | Invokes an active autolaunched Flow in your org, binding a value into each of its input variables and handing its output variables to later steps. | The setting that matters most on a lookup is Return fields: it decides which of the matched record's fields later steps can see at all, so it's effectively the list of things your workflow is able to check. > **Salesforce** — Full settings, the three matching strategies, and how to handle no match or several matches are in Salesforce. ### Logic Four steps that shape the run itself: which path it takes, what it remembers, and how many times it repeats. | Step | What it does | |---|---| | Decision | Branches on rules you write over values already in the run. No AI at run time. | | Set a value | Computes or sets a value in the run for later steps to use. | | For each | Loops over a list, running the steps inside it once per item. | | Wait | Pauses the run for a fixed duration. | Decision is the one nearly every workflow needs — it's how separate AI answers become a single outcome. Set a value is for accumulating or normalizing, especially across a loop. For each turns an extracted list into repeated work. > **Don't add a Wait step in the current release** — It fails at the start of the run. See Logic for the detail. > **Logic** — Full settings for all four are in Logic. ## Wire Steps Together with References Every step's inspector ends with the Values you can use here panel — everything the workflow produced before this step, and how you connect steps without hand-typing reference names. - Click into the field you want to fill — it gets a highlighted border to show it's focused. - Click a chip in the panel to insert its reference. With nothing focused, clicking a chip copies the reference to your clipboard instead. - Use Filter values… to narrow a long list. Chips are grouped in run order, each group header showing a count badge: | Group | What's in it | |---|---| | Global values | Today, Now, True, False. Today and Now resolve when the step runs, in your org's time zone. | | Trigger | Every launch-form field (as trigger.field_name), every document slot, and the Record Id the run was launched from, if any. | | Variables | Anything a Set a value step wrote. | | Loop item | Shown only inside a loop: the current item, its position in the list, and each of its fields. | | One group per earlier step | Headed by that step's display name and reference name — for example Ask the document ai_query_1. Each row is the full dotted path you'd insert: ai_query_1.answer, ai_query_1.confidence, sf_getRecords_1.record. **Always insert references from this panel rather than typing them** — A hand-typed reference with a typo is stored as literal text instead of a real reference. The step then looks for that literal text, finds nothing, and succeeds — indistinguishable from "there was genuinely no match." ## Validating and Publishing The workflow re-checks itself as you type, and the header's validation badge shows the result: Checking…, Valid, Has problems, or Not checked. - If the badge reads Has problems, click it to open Problems to fix, which lists every issue in plain text at once. - Work through each item until the badge reads Valid. Before a version can publish, the workflow needs: - A name. - A unique reference name on every step, with every route pointing at a real step. - No step the run could never reach. - Every Decision to have at least one branch and a no-match route. - Every reference a step reads to be guaranteed to exist by the time that step runs, on every path that can reach it. A reference produced only on one Decision branch is rejected if a later step could be reached without taking that branch. - Every document slot and field a step refers to to still exist. - Every write step to have something to write, and every lookup to have something to look up. ## Test the Workflow - In the builder header, click Test run. If it's disabled, a tooltip explains why: Name the workflow first → Checking… → Fix the problems first → Save the draft first. - Provide the documents and values the launch form asks for, exactly as you would for a real run. - Click Start run and step through the result. A test run shows the run resolving one step at a time — what each lookup returned, what each AI step answered, which branch matched, and which write fired. When an outcome is wrong, that history is what tells you which step to fix. > **A test run is a real run** — It reads real documents, it writes real records to Salesforce, and the review gate fires exactly as it will in production. It is labelled Test run · draft of v1 everywhere it appears, but it is not a simulation. If you do not want records created, point the workflow at a sandbox or a throwaway record first. > **Publishing checks the workflow's structure** — A handful of deeper configuration checks run only when a run first starts, so a workflow can publish and then fail at the very start of its first run with workflow definition failed run-start validation. A Test run before you publish catches this, because it puts the draft through the same run-start checks. ## Publish the Workflow Once the validation badge reads Valid, click Publish — the button names the version it will create, for example Publish v2. If the draft is identical to what's live, it reads No changes since v1 and is disabled. The published version is frozen from that point on: publishing v2 never changes v1, and a run already in progress finishes on the version it started on. Publishing consumes the draft — editing again starts a fresh draft on top of the published version, and the workflow list shows an Edited badge until you publish again. Every Flow that calls this workflow automatically picks up the newest published version. ![The workflow list, showing published versions and the Edited badge.](https://media.help.cloudfiles.io/dai-workflows-sf/block-88-d9347f6f.png) > **If a colleague publishes while you have the workflow open** — Your next publish is refused with Someone else edited this workflow. Your edits aren't lost, but they aren't sitting on top of the newest version — reopen the workflow, re-apply your changes, then publish. To review or roll back to an earlier version: - Click More actions → History to see every published version, newest first, with its publish date and run count. - Click View on any row to open a read-only summary of that version and its full step list. - Click Restore as draft to copy that version into your current draft to edit and republish. Restoring doesn't itself change what's live. To discard unpublished work, click More actions → Discard draft. On a workflow that's already published, this reverts to the published version. On a workflow that's never been published, this removes the workflow entirely. There is no Activate, Deactivate, Clone, or Delete on a published workflow — publishing a new version is how a change goes live, and discarding a draft is the only destructive action. ## Next steps - Read documents (AI) — Ask the document, Classify, Extract fields. - Salesforce — finding and matching records, and the five write steps. - Logic — Decision, Set a value, For each, Wait. --- # Read documents (AI) https://help.cloudfiles.io/docs/dai-workflow-steps-read-documents-ai-sf/ # Read documents (AI) The three workflow steps that look at an uploaded document and turn what's on the page into a value the rest of the workflow can use: Ask the document, Classify, and Extract fields. > Kind: Guide · Updated: Aug 21, 2026 The Read documents (AI) group holds the three steps that look at an uploaded document and turn what's on the page into a value the rest of the workflow can use. This article covers all three in detail. For creating the workflow, building the launch form, and how steps pass values to each other, see Workflows first. None of these steps touch Salesforce. They read documents and produce values — which a Decision step branches on, or a Salesforce step writes back. ## Settings all three steps share Documents in scope. Every step here lets you choose which of the workflow's declared document slots it reads. Leave every box unchecked to read every document in the run — the panel confirms this with "Reading all documents in the run." Check a specific slot when a workflow carries more than one document and this question should only look at one of them. A stale entry left behind by a deleted slot is marked no longer a declared document; if the workflow declares no slots at all, the panel says so and the step reads whatever documents the run happens to carry. Confidence. Every AI step reports a confidence score between 0 and 1 alongside its answer, available in the reference picker as its own chip (tagged confidence). Extract fields reports one per field and one for the extraction overall. Full flow context. These steps run with everything the workflow has produced so far available to them, and they aren't subject to Salesforce callout limits. That's what makes it practical to have several of them in a row, each asking one narrow question. ## Ask the document Ask a free-form question of a document and capture the answer. Runs with full flow context, no callout limits. Use it for a single fact, or for a verdict you intend to branch on. - Under Question to ask the document, type your question — placeholder What is the total amount on this invoice?. You can insert references, wrapped in {{double curly braces}}, that get substituted before the question is asked — for example, "is the invoice total greater than the amount on order {{trigger.order_amount}}?" - Under Documents in scope, choose which uploaded documents this question reads. Produces: answer and confidence. Write the question the way you'd brief a colleague — "The invoice total after tax, usually at the bottom of the last page, as a number without a currency symbol" works better than "total." ![An Ask the document step showing a question with an inserted reference, and the "Documents in scope" panel reading "Reading all documents in the run."](https://media.help.cloudfiles.io/dai-workflow-steps-read-documents-ai-sf/block-12-9fd15149.png) ### Comparing a document against a Salesforce record > **How the comparison works** — Because the question is assembled from references before it's asked, an Ask the document step is also how you check a document against your data. You put the record's field into the question and tell the AI what answer you want back. The AI reads the document; the Salesforce value arrives as plain text inside the question. Nothing about the record is guessed. This assumes a Find a Salesforce record or Search Salesforce records step sits above this one and requested the field you want under Return fields — see Salesforce. - Add the Ask the document step below the lookup, and rename it after the check it performs — one name per thing being verified. The name is what you'll read on the canvas and reference in the Decision step, so a descriptive one pays for itself. - Click into Question to ask the document, then insert the record's field from Values you can use here — it lands in the question as {{sf_getRecords_1.record. **Example comparison question** — Identify the name of the organization that issued this document. If the name appears only as a code or an abbreviation, expand it to the full name first. Then compare it with {{sf_getRecords_1.record. **Insert record references from the picker, never by typing them** — A hand-typed reference one character off — a single underscore short of the real API name — isn't a reference at all. It's literal text that gets pasted into the question verbatim, and the AI dutifully compares the document against that gibberish and answers No. The step succeeds, the workflow publishes, and every run quietly fails the check. Clicking the chip is the only way to be sure the path is real. ## Classify Sort a document (or value) into one of a fixed set of labels you define. Pair it with a Decision step to route the run by document type. - Under Labels (comma-separated), list at least two labels — placeholder invoice, receipt, contract. - Under Documents in scope, choose which uploaded documents this step reads. Produces: category and confidence. ![A Classify step with its comma-separated labels, optional instructions, and an optional default label for a document that fits none of them.](https://media.help.cloudfiles.io/dai-workflow-steps-read-documents-ai-sf/block-28-4ad3a84a.png) The step is guaranteed to return one of your labels exactly as typed — it cannot invent a new one, which is what makes a category equals comparison in a Decision step safe. ## Extract fields Pull structured fields from a document against a schema you build — each field typed. This is the workhorse step: use it when you want a structured record rather than a single answer. - Under Fields to extract, click to add a row for each field. - Give it a Field name — the name used to read the value later. value, confidence, data, and fieldConfidence are reserved and can't be reused. - Set its Type: string, number, integer, boolean, date, datetime, or list of items. - Optionally fill in a Description telling the AI where to look and what format to expect — for example, "the total after tax, bottom of the last page." This is optional but resolves most ambiguity, so it's worth setting. - Use Remove to delete a field. ### Lists of items Choosing list of items opens a nested editor headed "Each item in the list has these fields" — add one row per column, each with its own Item field name, a type (any of the above except list), and an optional "Guide the AI for this item field (optional)" description. You need at least one item field, or you'll see Describe at least one item field. This nested list is what feeds the two steps that work per-item: a For each loop, or Create Salesforce records (bulk). Both bind it by reference, and a list field's reference is the field name plus .value — a list field named line_items on step ai_extract_1 is ai_extract_1.line_items.value. Insert it by clicking its chip, which carries the list tag; the two steps that accept a list only accept a chip tagged that way. Nesting is one level deep; a list of lists isn't supported in the builder. ![An Extract fields step with one typed field and its description, alongside the extraction settings that decide what happens when a field isn't found.](https://media.help.cloudfiles.io/dai-workflow-steps-read-documents-ai-sf/block-37-850723a0.png) Produces: the value and a per-field confidence score for each declared field, plus one overall confidence for the whole extraction. In the reference picker, each field shows with a chevron (Show confidence) to reveal its score alongside, and a list-of-items field carries the list tag. > **A field the document doesn't contain comes back blank, and a blank value never clears a Salesforce field** — If an invoice has no PO number, the extraction returns nothing for it, and a later write step simply leaves that Salesforce field untouched rather than emptying it. This is deliberate; there's no way to make a workflow deliberately clear a field. If a document would return an enormous amount of data (thousands of rows), the step narrows the extraction itself rather than silently truncating it — as a rule, extract the columns you actually need rather than every column on the page. ## Choosing between the three steps | What you need | Step | |---|---| | One fact off the page, or a Yes/No verdict against a Salesforce value | Ask the document | | To route the run by what kind of document arrived | Classify | | A structured set of typed fields | Extract fields | | A repeatable set of rows — line items, charges, entries | Extract fields with a list of items field | > **Prefer several narrow steps over one broad one** — A step that answers one question produces one value you can branch on, and when it gets something wrong you know exactly which check to fix. A single step asked to verify five things at once gives you one answer and no way to tell which of the five failed. ## Related - Workflows — creating the workflow, the launch form, references, validating and publishing. - Salesforce — the lookups that supply the values these steps compare against, and the writes that record the result. - Logic — the Decision step that turns these answers into an outcome, and the For each loop that consumes an extracted list. --- # Salesforce https://help.cloudfiles.io/docs/dai-workflow-steps-salesforce-sf/ # Salesforce The seven workflow steps that read and write Salesforce records: two that find records, four that change them, one that hands off to a Flow of your own, and the three matching strategies to choose between. > Kind: Guide · Updated: Sep 4, 2026 The Salesforce group holds seven steps: two that find a record, four that change one, and one that hands the run over to a Flow you built yourself. Together, they're how a workflow turns a document into something Salesforce can act on safely. This article covers all seven in detail. For creating the workflow, building the launch form, and how steps pass values to each other, see Workflows first. Nothing in this group decides anything on its own judgment: the conditions, field maps and Flows you configure do that. The one exception is the optional Let AI pick the best match mode inside Search Salesforce records. All five write steps show a Writes to Salesforce badge in the inspector and a red upload icon on the canvas card, and all five pause according to the workflow's Review policy. Each also offers a per-step hold, worded for what it does (Require approval for this write, for this delete, or before running this Flow), which holds that one step for a person even when the workflow otherwise runs straight through. A step carrying it shows a Requires approval badge on its card. That setting can only add a hold; it never removes one the policy already requires. ## Find a Salesforce record Query records by conditions (like Flow's Get Records). The exact-match lookup, and the one to reach for first. Fully deterministic: no AI is involved, so the same inputs always find the same record, in the same order, every time. When to use it: the document carries a clean identifier that exists on your records: an account number, an external ID, an exact name. It's also the right step when the run already knows exactly which record it's about, because a Flow passed the Id in on the launch form. - Choose a Salesforce object (any object you can read). - Choose Condition logic: All conditions (AND), Any condition (OR), or Custom logic (reveals a Custom logic box for something like 1 AND (2 OR 3)). - Click Add condition to add a row: a Field, an operator, and a Value or a ref. The value box hides for the two null operators. You need at least one condition, or you'll see Add at least one condition. To look up the record the run was launched against, set the field to Id, the operator to equals, and the value to the launch-form field carrying that Id, inserted from the reference picker as trigger. **Several matches is not an error in "Only the first record" mode** — The step takes the first row by your sort order when several conditions match, which is why leaving Sort empty makes "the first record" arbitrary. If you need "the right one out of several, judged on context," use Search Salesforce records with Let AI pick the best match instead. ## Search Salesforce records Fuzzy prefix search over a Salesforce object. The tolerant lookup. Runs a prefix-based search across an object's name fields (or all searchable text fields), forgiving the small differences that break exact matching: "Acme Corp." on a document against "Acme Corporation" in Salesforce. When to use it: the document carries a name or label that won't match your records character for character. - Choose a Salesforce object (any searchable object). - Under Search term, bind the value to search for (placeholder A value or a ref like ask_the_document_1.answer), normally something an earlier AI step read off the document. - Under Return fields, add any fields beyond Id you want on each matching record. - Choose a Search scope: Name fields (default) or All fields. - Leave Let AI pick the best match off to get the full list of matches back and decide in a later step, or turn it on to have the AI resolve a single record (see below). ![A Search Salesforce records step with its search term bound to an earlier AI step's answer.](https://media.help.cloudfiles.io/dai-workflow-steps-salesforce-sf/block-16-f5288157.png) How it matches, mechanically: the search term is split on spaces, tokens shorter than two characters are dropped, and each remaining token is matched as a prefix against the search scope. Produces: a match count and the list of records, at most 20 per object. The list carries the list tag in the picker, so it can feed a For each loop. > **A blank or too-short search term returns zero matches rather than failing** — Always branch on match count instead of assuming a search hit. A search step "succeeding" with zero results looks identical to one that never had anything to find. ### Let AI pick the best match The same fuzzy search, with one checkbox turned on and an instruction added. This is the only place in the group where AI decides which record matched. When to use it: several candidates could plausibly match, and picking the right one depends on judgment a fixed rule can't express. - Turn on Let AI pick the best match. - Fill in How should the AI choose? (placeholder e.g. the account whose name best matches {{extractInvoice.vendor}}). Be specific: this is the only guidance the AI has to break a tie. - Under Documents in scope, choose which documents the AI may read while deciding. ![A Search Salesforce records step with "Let AI pick the best match" turned on and an instruction field filled in.](https://media.help.cloudfiles.io/dai-workflow-steps-salesforce-sf/block-40-3174694e.png) Produces: everything the fuzzy match produces, plus the resolved record, whether it picked one, and its confidence. The AI is allowed to abstain: if it can't confidently choose, it picks nothing and reports that it did not pick, rather than guessing. Branch on picked before assuming there's a record to write to. > **Choosing a matching strategy** — Which lookup to reach for depends on what the document carries, and on whether you can give the AI an instruction specific enough to break a tie. The table below compares the four routes. | What the document contains | What you know at run time | Use | |---|---|---| | A unique identifier that exists on your records | Nothing else needed | Find a Salesforce record | | A company or person name only, close but not identical to your records | Nothing else needed; a single top match is good enough to use directly | Search Salesforce records | | A name that could plausibly match more than one record | An instruction specific enough for the AI to break the tie by | Search Salesforce records + Let AI pick the best match | | A name that could plausibly match more than one record | Nothing else needed, but you'd rather branch on the result yourself than let AI pick | Search Salesforce records, then a Decision on the returned list | > **Handling no match and multiple matches** — Both matching steps succeed even when nothing matches: a lookup finding zero records is a valid outcome, not an error, and neither step throws. Always follow a matching step with a Decision step on its match count or outcome, rather than assuming a downstream write step has something valid to act on. A typical pattern:Match count equals 1 (or AI picked equals true) → continue to update the matched record.Match count equals 0 (or the outcome shows no match) → continue to create a new record instead.Match count is greater than 1 and you're not using AI picking → route to a step that flags the run for a person, rather than guessing which one is right. ## Create Salesforce record Write a new record. Maps step values onto object fields. - Choose a Salesforce object (placeholder e.g. Contact). Only objects you can create are listed. - Build the Field map. It starts empty, with nothing but a + Add field link: click it to add a row, then pick a Field and supply a Value or ref for it. You need at least one row that resolves to a value, or the step fails with "no field values resolved." - Optionally turn on Require approval for this write; its helper text says the write is held for a person to approve even when the workflow otherwise runs straight through. Produces: the new record's Id and a created flag. ![A Create Salesforce record step, showing the "Writes to Salesforce" badge, the object field, and an empty field map with its "+ Add field" link.](https://media.help.cloudfiles.io/dai-workflow-steps-salesforce-sf/block-53-a53c6102.png) ## Update Salesforce record Update an existing record by id. Maps step values onto object fields. - Choose a Salesforce object; only updatable objects are listed. - Under Record to update, bind the target by clicking a ref chip or typing an Id. This is usually the Id from an earlier lookup step (sf_getRecords_1.record.Id), or the record the workflow launched from. Required: Choose the record to update. - Build the Field map, same as Create. Only fields that resolve to a value are sent, so a blank never clears anything. - Optionally turn on Require approval for this write. Produces: the record's Id and an updated flag. ![An Update Salesforce record step with Record to update bound to an earlier lookup's record Id, a field map of three fields set to literal values, and After this step set to End the run.](https://media.help.cloudfiles.io/dai-workflow-steps-salesforce-sf/block-58-6c8af88f.png) A field map row's value can be a fixed string as easily as a reference, which is what lets each outcome of a Decision have its own write step. An outcome step's map is often just two rows: the status field set to a literal status, and a notes field set to the literal reason. Because the reason is baked into that step rather than computed, a person reading the record later sees exactly which branch the run took. ## Delete Salesforce record Delete an existing record by id. Irreversible in Salesforce beyond the recycle bin. - Choose a Salesforce object (placeholder e.g. Contact). Only deletable objects are listed. - Under Record to delete, bind the target record: the inspector tells you to click a ref chip or type an id, and notes that the record goes to the Salesforce recycle bin. Leave it empty and the red Choose the record to delete. appears immediately. - Optionally turn on Require approval for this delete; the helper text explains that the delete is held for a person to approve even when the workflow otherwise runs straight through. There's no field map: a delete only needs a target. Produces: the record's Id and a deleted flag. ![A Delete Salesforce record step with an unbound Record to delete field showing the "Choose the record to delete." validation message.](https://media.help.cloudfiles.io/dai-workflow-steps-salesforce-sf/block-65-9f809282.png) The deleted record lands in the Salesforce recycle bin, so it's recoverable there for as long as your org retains it, but nothing in the workflow can put it back, and once the bin is emptied it's gone. Treat a delete as irreversible when you're deciding whether to force an approval on it. Two safety checks run automatically: the bound Id has to actually look like a Salesforce record Id (15 or 18 characters), and it has to belong to the object you chose; pointing an Account delete at a Contact Id refuses and deletes nothing. Deleting an already-gone record is treated as a success, since the goal state ("gone") was already true. ## Create Salesforce records (bulk) One record per item in a list, in a single bulk write. One approval gates the whole batch. - Choose a Salesforce object (placeholder e.g. OrderItem). - Under Records source, bind the list you want one record created from each item of; the inspector asks you to click a 'list' chip below, or type a reference. This must reference an actual list, normally a list of items field from an Extract step, whose reference takes the form ai_extract_1.line_items.value (the field name plus .value), which is also the field's placeholder text. The builder shows the item shape when it knows it, for example "Each item has: description, quantity, unit_price." - Build the Field map: each row's source is either a value from the current item (item.unit_price, inserted via the Item fields chips) or a fixed value or reference applied to every record, for example setting a parent Id on every row. - Optionally set Max records: labelled Max records (optional), placeholder and default 1000, hard ceiling 2000. - Optionally turn on Require approval for this write. Note the helper differs from the single-record steps: it says the whole batch is held for a person to approve, and one approval releases all the records. ![A Create Salesforce records (bulk) step, showing the Records source field, the field map, Max records, and the batch-level approval checkbox.](https://media.help.cloudfiles.io/dai-workflow-steps-salesforce-sf/block-71-e15c4c04.png) Warnings catch bad wiring: "The records source must be a reference to a list (not a typed value)." · a warning that "quantity" is a number rather than a list, so the records source must be a list of items · "'Amount' reads item.total, but 'total' isn't a field of the extracted items." Produces: a list of created record Ids (with a gap where a record failed), a success count, a failure count, and per-row failure reasons. > **Partial success is a success** — If 48 of 50 line items save and 2 are rejected by Salesforce, the step completes and reports 48 successes and 2 failures with the reason for each. It only fails outright if the list is empty, over the cap, or every single record was rejected. Add a Decision on the failure count if a partial result should change what happens next. > **Bulk create vs. a loop** — Both can write one record per item. Prefer Create Salesforce records (bulk) when the only thing you do per item is write it: it's a single write, and a single approval. Use a For each loop when each item needs its own reading, checking, or branching before anything is written. ## Run a Salesforce Flow Invoke an autolaunched Flow in this org. Binds a value into each of the Flow's input variables and hands its output variables to later steps. When to use it: the logic already exists in a Flow, or the work is something no single step can do. Read the document, find the record, decide, then let your own Flow take the outcome from there. - Choose a Flow. The picker searches your org and lists only active autolaunched Flows with no trigger, ordered by label, up to 200. - Fill in Values into the Flow: one row per input variable the Flow declares. Click a reference chip below, or type a value. Each row is headed by the variable's name with its declared type beside it, and reads list where the variable is a collection. - Tick Required on any row the Flow cannot run without. Salesforce treats every Flow input as optional, so without this the Flow runs with that variable empty and the step reports success, which makes a reference that quietly came back with nothing look exactly like a clean run. Ticking Required fails the step instead when nothing resolves into that row. - Check Values out of the Flow: the references later steps will use, one per output variable the Flow reports, in the form sf_flow_1.outputValues. **Only autolaunched Flows can be called** — Salesforce allows this for active autolaunched Flows with no trigger, and nothing else. A Screen Flow needs a person in front of it, and a Record-Triggered Flow is fired by Salesforce itself. If the Flow you want is missing from the picker, check in Flow Builder that it is active and that its type is Autolaunched Flow with no trigger. > **A Flow that pauses fails the step** — A Flow that reaches a Wait element stops half-way and hands back only the variables it set before the wait. Salesforce reports that as a success. The step does not: the rest of the Flow runs later, out of band, with nothing tying it back to this run, so recording it as done would claim an outcome that never happened. Keep Wait elements out of the Flows you call from a workflow. > **Two variable types need care** — A Percent variable takes no value at all. Salesforce rejects the whole invocation for any value sent to one, and says only that an error occurred while running the Flow. The row still appears so you can see the variable, with the reason in place of the value box. Leave it unset, which runs cleanly, or change it to a Number in Flow Builder.A collection variable is tagged as a list in its row and accepts only a list. Bind a list reference from an earlier step, normally a list field from an Extract fields step. Typing a single value there is flagged in the builder, and Salesforce refuses it. Values are converted to the type the Flow declared before they are sent, so a number that arrived as text reaches a Number variable as a number. One that cannot be converted fails the step and names both the Flow variable and the row it came from, which is more than Salesforce's own refusal would tell you. ## Related - Workflows: creating the workflow, the launch form, references, validating and publishing. - Read documents (AI): the steps that produce the values these lookups match against. - Logic: the Decision and For each steps that route and repeat around these lookups and writes. --- # Logic https://help.cloudfiles.io/docs/dai-workflow-steps-logic-sf/ # Logic The four workflow steps that shape the run itself rather than reading documents or touching records: Decision, Set a value, For each, and Wait. > Kind: Guide · Updated: Aug 20, 2026 The Logic group holds four steps that neither read documents nor touch records — they shape the run itself: which path it takes, what it remembers, and how many times it repeats. This article covers all four in detail. For creating the workflow, building the launch form, and how steps pass values to each other, see Workflows first. ## Decision Branch on rules you write over values already in the flow. Deterministic — no AI at run time. Needs an else branch. This is the step nearly every workflow needs: it's how several separate answers become one outcome. Its inspector states the rule directly: "Add at least one branch (a condition) so this decision can publish. Each branch routes to a later step or ends the run — pick its destination under 'then go to'. Rules are checked top to bottom; the first match wins. The no-match route below is taken when nothing matches." - Click + Add branch to add a condition row — auto-named branch_1, branch_2, and so on, with a delete icon on its right. Each row takes a left value (usually a reference to an earlier step's result), an operator, and a right value or reference (hidden for the four operators that take no right-hand side). - Under then go to, choose the step to jump to, or End run. - Click + Add branch again for each additional rule. They're checked top to bottom, and the first match wins. - Below your branches, the inspector always shows a fixed no match (else) row with its own then go to dropdown (defaulting to End run) — this is the mandatory route taken when nothing matched. Every Decision needs one, and it can't be deleted. Operators: equals, does not equal, is greater than, is at least, is less than, is at most, contains, is empty, is not empty, is missing, is present. Each branch reads one earlier step's result, so a Decision sitting under a row of comparison steps is where those separate answers get resolved into a single outcome — one branch testing a comparison step's answer equals a status string, the next testing a numeric step's answer is less than a threshold. Name your branches after the outcome they produce rather than after the field they test; the canvas shows those names as route chips, and they're what you'll read when you come back to the workflow in six months. ![A Decision step, with branches and the no-match route](https://media.help.cloudfiles.io/dai-workflow-steps-logic-sf/block-7-a146c443.png) > **First match wins, so branch order is precedence** — Put the checks that must not be overridden at the top. A run whose subject couldn't even be identified shouldn't then be judged on a threshold, so the ambiguity branches go above the substantive ones; the plain approval branch goes last, below every reason a run might be held; and the no match (else) route catches everything left over, which is usually the rejection default rather than End run. Reordering your branches changes behaviour even when no individual condition changed. > **"Empty" and "missing" are different, and the difference bites** — Is missing / is present ask only whether a value exists at all — an empty list and an empty piece of text both count as present. Is empty / is not empty ask whether it has anything in it — nothing at all, an empty list, and whitespace-only text all count as empty. To check "did the extraction actually find any line items," use is not empty, not is present. ### Routing rules Routes can only point forward. If a branch's destination step is later deleted or moved above the Decision, that branch flags "This branch pointed at a step that was deleted or moved above the decision. Pick a new destination," which blocks publishing. Inside a loop, a route to a step after the loop is labelled "— exits loop," and the loop's own continuation reads Next item (back to loop). ### What to branch on | Situation | Branch on | |---|---| | A comparison step returned a verdict | that step's answer equals Yes / No / your status string | | A step returned a number | that step's answer is less than / is at least your threshold | | A document was classified | the Classify step's category equals a label | | A lookup may have found nothing | the match count equals 0, or the AI picked flag | | An extraction may have found no rows | the list is not empty (not is present) | | A bulk write partly failed | the failure count is greater than 0 | ## Set a value Compute or set a value in the flow for later steps to use. Good for building up a value across a loop, normalizing something, or holding a value referenced in several places. Each assignment is one row of three controls side by side — the target, the operator, and the value — with a delete icon at the end of the row. - In the first box, Assign to (variable or trigger input), name the target — a variable, or one of your launch-form inputs. This is the only field in the builder you type a name into rather than insert a reference into; the reference picker refuses anything else here with "Assign only into a trigger input or a variable." - Choose an operator: equals replaces whatever is there with the value (the default), and add combines — appending to a list, joining text end to end, or summing numbers, depending on the target's current content. - In Value or ref, supply a fixed value or insert a reference from the picker. - Click + Add assignment for each further target you want to set in the same step. One Set a value step can carry as many rows as you need, and they're applied top to bottom — so a later row can read a target an earlier row in the same step just wrote. ![A Set a value step, with two assignment rows](https://media.help.cloudfiles.io/dai-workflow-steps-logic-sf/block-20-2581893f.png) add only works on lists, text, and numbers — trying to add a checkbox value or a whole record fails the step. Anything a Set a value step writes appears in the reference picker under the Variables group, available to every step below it. > **Inside a loop, Set a value writes to run-level state** — That's the standard way to accumulate a total, or collect Ids, across every item and then use the result after the loop — use add on each pass, then read the variable in a step after After last item. > **Not the way to feed a shared write step** — A Set a value step is not the way to feed a shared write step on several Decision branches. Give each outcome its own write step with literal values instead — see One write step per outcome in Workflows. ## For each Loop over a list. Runs the steps inside the loop once per item; each item's fields are available as item. **Don't loop just to write** — If the only thing you do per item is create a record, use Create Salesforce records (bulk) instead — one write, one approval. Reach for a loop when each item needs its own reading, checking, or branching first. See Salesforce. ## Wait Pause the run for a fixed duration before the next step. > **Don't add this step in the current release** — The builder stores its delay under one name while the engine expects another, so a published workflow containing a Wait step fails at the start of its first run with an input validation error. The field is also labelled in milliseconds while the value it stores is named in seconds. If you've already added one, delete it and republish — this will be fixed in a following release. ## Related - Workflows — creating the workflow, the launch form, references, validating and publishing. - Read documents (AI) — the steps that produce the answers a Decision branches on. - Salesforce — the lookups whose match counts you branch on, and the writes each outcome routes to. --- # Datasets (Configuration) https://help.cloudfiles.io/salesforce/9BnA-datasets # Datasets Datasets in CloudFiles Document AI let you group multiple documents and Salesforce record context into a single AI-ready collection that can be queried together with natural language prompts. > Kind: Guide · Updated: Jul 4, 2026 Datasets in CloudFiles Document AI allow you to group multiple documents and salesforce record context into a single AI-ready collection so they can be analyzed together. Once all data is added and processed, you can run natural language prompts across the entire dataset instead of querying each document or record individually. Datasets are especially useful when you want to compare documents, summarize information across files, or extract insights from multiple related documents such as quotes, binders, contracts, or reports. Below is a straightforward walkthrough of how to configure and use a dataset. ## Create a New Dataset A dataset represents a collection of documents that CloudFiles processes and indexes so they can be queried together using AI. To create a new dataset, navigate to: CloudFiles App → Document AI tab → Datasets subtab On the Datasets page, you will see a list of existing datasets along with details such as dataset ID, creator, creation date, and processing status. Click Create New Dataset to open the dataset creation dialog. ### Configure the dataset details In the Create Dataset window, provide the following information: ![](https://media.help.cloudfiles.io/dai-datasets-sf/01.png) Dataset Name: Enter a clear name for the dataset so it can be easily identified later. Description (Optional): Add a short description describing what documents the dataset contains or what it will be used for. Once the details are entered, click Save & Proceed. This creates the dataset and opens the dataset configuration page where you can add documents. ## Add Data to the Dataset After creating the dataset, the dataset details page will open. This page contains the Data Sources section, where you can add both documents and Salesforce data that will be included in the dataset. ### Files Within the Files section, you will see an option to upload documents. Click Upload Files and select the files you want to include in the dataset. These can be PDFs or other supported document types that you want to analyze together. ![](https://media.help.cloudfiles.io/dai-datasets-sf/02.png) Once uploaded, CloudFiles automatically processes the documents by indexing their content so they can be used for AI queries. After processing is complete, the status changes to Processed, indicating that the files are ready to be queried. ### Salesforce Data (SOQL Queries) In addition to files, you can also add Salesforce data using SOQL queries. Navigate to the SOQL Queries section and click Add Query. Provide a query name, enter your SOQL query, and choose a refresh interval (24 hours, 48 hours, Weekly). After validation, CloudFiles fetches the data and includes it as part of the dataset. This data is processed and indexed just like documents, allowing it to be queried alongside your files. > The system supports large datasets, with up to 1 million rows per query, and automatically refreshes the data based on the selected interval. ![](https://media.help.cloudfiles.io/dai-datasets-sf/03.png) When processing is complete, the Status will change to Processed, indicating that the dataset is ready to be queried. ## Query the Dataset in AI Playground After the dataset has been processed, you can test and query it using the AI Playground. Navigate to the AI Playground tab and click Create Playground. From the dropdown options, select Dataset Playground. ![](https://media.help.cloudfiles.io/dai-datasets-sf/04.png) In the dataset playground interface, select the dataset you created from the dataset selector. Once the dataset is selected, you can start entering prompts to query the documents contained in that dataset. The AI will analyze all documents in the dataset and return answers based on the information found across those files.For example, you can ask prompts such as summarizing the documents, extracting key information, or comparing data across multiple files. ## Result Once configured and processed, a dataset becomes an AI-ready collection of documents that can be queried collectively using natural language prompts. Using the Dataset Playground, users can quickly analyze multiple documents, extract insights, and validate prompts before using those queries in automation. ![](https://media.help.cloudfiles.io/dai-datasets-sf/05.png) Datasets can also be managed directly within Salesforce Flows using CloudFiles Document AI Flow actions. For example, the Create Dataset action can be used to programmatically create datasets during a flow, while actions such as Query Document/Dataset or Query Document/Dataset (Batch) allow prompts to run against those datasets. The extracted results can then be used to update records or trigger actions as part of Salesforce automation. --- # Settings (Salesforce: Document AI) https://help.cloudfiles.io/salesforce/rSFr-settings # Settings CloudFiles Document AI supports multiple AI agent types (query, direct-query, split); this article covers default agent configuration, how to change the default agent, and the Auto Assign Licenses setting. > Kind: Guide · Updated: Jul 4, 2026 ## Overview CloudFiles Document AI supports multiple AI agents with differing capabilities, making them suitable for a wide range of tasks. We broadly classify them into three types—query, direct‑query, and split—with the following versions based on capabilities : - Query : cloudfiles‑searis‑v1, cloudfiles‑searis‑v2, cloudfiles‑searis‑aux‑v1 - DirectQuery : cloudfiles‑revia‑v1 - Split : cloudfiles‑divira‑v1 To know more about these agents and when to use which agent, please refer to the Functional Agents article. ## Default Configuration The following agents are configured by default at the account level currently: - Query: cloudfiles-searis-v1 - DirectQuery: cloudfiles-revia-v1 - Split: cloudfiles-divira-v1 However, you can override these defaults at the account level. ## How to change the default Agent ? To use override a default CloudFiles Agent: - Navigate to the Cloudfiles app. - Click on the Document AI tab. - Click on Settings on the left hand side menu. - Select your preferred agents from the dropdown menus. ![](https://media.help.cloudfiles.io/dai-settings-sf/01.png) ## Auto Assign Licenses When enabled, this setting automatically assigns a CloudFiles license to the most recent Salesforce user who accesses any CloudFiles component (such as the widget or content library), provided the user already has a relevant CloudFiles permission set. If the toggle is off, such users will still appear in the User Management list but with an Inactive (unassigned) license status. Users without any CloudFiles permission set will not be added as CloudFiles users at all, even if they access the widget or content library. For details on assigning permission sets to users, see the User Permissions Guide. --- # Usage (Salesforce: Document AI) https://help.cloudfiles.io/salesforce/usage # Usage The Usage Page provides an overview of the total number of pages processed using Document AI. > Kind: Guide · Updated: Jul 4, 2026 The Usage Page provides an overview of the total number of pages processed using Document AI. It allows users to track their document processing activity over a selected time period. Go to the App Launcher, search for CloudFiles, select it, then navigate to the Document AI tab to check daily usage in the Usage section. ![](https://media.help.cloudfiles.io/dai-usage-sf/01.png) ![](https://media.help.cloudfiles.io/dai-usage-sf/02.gif) ![](https://media.help.cloudfiles.io/dai-usage-sf/03.png) Here, you'll find a detailed overview of pages and credits processed daily, with options to filter data using the Interval and Date Range dropdowns. --- # User Management (Salesforce: Document AI) https://help.cloudfiles.io/salesforce/F8L0-user-management # User Management User Management in CloudFiles ensures that users have the right access, licenses, and permissions to efficiently manage and process documents within Salesforce. > Kind: Guide · Updated: Jul 4, 2026 User Management in CloudFiles ensures that users have the right access, licenses, and permissions to efficiently manage and process documents within Salesforce. ## User Permissions The CloudFiles Document AI | OCR, Text Extraction, Classification installed package includes custom permissions to control access to various features. Additionally, we provide default permission sets based on commonly used permission combinations. ### CloudFiles Custom Permissions CloudFiles offers granular permissions to manage access and functionality. Below is a list of these permissions: ![](https://media.help.cloudfiles.io/dai-user-management-sf/01.png) Superadmin - This permission grants users full access to manage all aspects of CloudFiles Document AI. Only users with this permission can access the AI Playground feature. ![](https://media.help.cloudfiles.io/dai-user-management-sf/02.png) > All flow action when triggered, runs through the integration user. ## License Management Once the necessary permissions are assigned to Salesforce users, any interaction with the CloudFiles Lightning App will create a corresponding CloudFiles User. ### Viewing CloudFiles Users You can view and manage CloudFiles users in the User Management page under the Document AI tab of the CloudFiles App. ![](https://media.help.cloudfiles.io/dai-user-management-sf/03.png) A Salesforce user must have an "Active" CloudFiles User status to access CloudFiles functionalities like the AI Playground. To activate or deactivate a user: - Click the pencil (edit) icon next to the License Status column. - Select Active or Inactive from the dropdown. - Click Save to apply the changes. ![](https://media.help.cloudfiles.io/dai-user-management-sf/04.png) > **Note** — If despite having an active license the user is not able to interact with any CloudFiles functionality, please confirm if the permission set has been correctly assigned to the user. Having either the 'CloudFiles Admin User' or 'CloudFiles Standard User' permission set is mandatory for any user to be able to interact with CloudFiles functionality. ![](https://media.help.cloudfiles.io/dai-user-management-sf/05.png) ### Managing Users Clicking Manage Users on the User Management page opens a detailed view of all Salesforce users in your org. This view includes additional columns: Profile and Role, and supports filtering by both columns to help you find and manage users more efficiently. ![](https://media.help.cloudfiles.io/dai-user-management-sf/06.png) To activate or deactivate a user, locate them in the list and toggle their license status accordingly. ### License Limitations The number of active CloudFiles users cannot exceed the total licenses allocated to your Salesforce org. If you try to activate more users than your license count allows, you will be prompted to purchase additional licenses. ![](https://media.help.cloudfiles.io/dai-user-management-sf/07.png) ### Buying Licenses You can add CloudFiles product licenses directly from the User Management page by clicking the Buy Licenses button in the top right. Any new licenses are immediately available for use and will be reflected in your billing as per your invoice. This lets you scale usage instantly without waiting for manual provisioning. ![](https://media.help.cloudfiles.io/dai-user-management-sf/08.png) --- # Features (Document AI · Salesforce) https://help.cloudfiles.io/salesforce/mBwY-features # Features This section highlights the powerful features of CloudFiles Document AI in Salesforce. > Kind: Guide · Updated: Jul 4, 2026 This section highlights the powerful features of CloudFiles Document AI in Salesforce. 1. **Multi-Agent AI with Custom Control** — CloudFiles Document AI uses a multi-agent system that gives users fine-grained control over how AI processes and queries documents. Each specialized agent, whether for document querying, direct text-based queries, or document processing is optimized for a specific function, ensuring accuracy and consistency. With Precision Prompting, users can define tone, format, and rules to get reliable, business-ready outputs. Upcoming Specialized Agents will further enhance automation for targeted document types like invoices and compliance forms. 2. **Universal File Intelligence** — CloudFiles Document AI brings intelligent document processing directly into Salesforce, seamlessly handling handwritten, scanned, and multilingual files through Adaptive Content Intelligence. It supports multiple file types without conversions via Format-Agnostic Reading and processes files from Salesforce, external storage, or email using Omni-Source Access. With Large & Selective Processing, users can handle massive documents or specific sections efficiently. Together, these features automate data extraction, ensure accuracy, and deliver structured, ready-to-use Salesforce insights. 3. **Intelligent Document Queries** — CloudFiles Document AI combines advanced OCR with Natural Language Processing (NLP) to help businesses quickly find, analyze, and act on information. NLP-Powered Q&A lets users ask questions in plain language and get precise answers from documents. Multi-Format Output enforces consistent, structured outputs like json, csv etc, removing the need for manual reformatting. Deep Data Extraction pulls structured text, tables, and metadata from across pages and merges results directly with Salesforce for a unified view. 4. **Automation & Bulk Actions** — The Automation & Bulk Actions section introduces CloudFiles' end-to-end document automation capabilities in Salesforce. It covers multi-source triggers, AI-powered flow actions, and Document Mapper, showing how documents are automatically captured, processed, and converted into accurate Salesforce data with minimal manual effort. 5. **Actionable AI Outputs** — The Actionable AI Outputs section explains how CloudFiles uses AI to transform documents from static files into intelligent, automated workflows in Salesforce. It covers AI-driven document management, AI-powered document generation, and intelligent PDF splitting, highlighting how documents are automatically understood, organized, generated, and prepared for downstream automation with minimal manual effort. --- # Multi-Agent AI with Custom Control https://help.cloudfiles.io/salesforce/multi-agent-ai-with-custom-control # Multi-Agent AI with Custom Control CloudFiles Document AI uses a multi-agent approach to give users precise control over how AI handles different types of document operations. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction CloudFiles Document AI uses a multi-agent approach to give users precise control over how AI handles different types of document operations. Instead of a single, general-purpose model, CloudFiles provides a collection of functional AI agents, each optimized for a specific task, such as querying document content, splitting large files, or responding to text-based prompts. This modular setup allows users to assign the right agent for the right purpose, improving accuracy, performance, and consistency across workflows. Agents can be managed at the account level or directly within a Flow, depending on how your automation is structured. 1. **Functional Agents** — CloudFiles offers a suite of specialized AI Agents that simplify document workflows by handling different types of processing and querying needs. Each agent type is designed for a specific purpose, ensuring accuracy and efficiency across various use cases:Document Querying Agents – Interact with document content to extract insights, answer questions, or analyze data.Direct Querying Agents – Handle general, text-based queries that aren’t tied to any specific document.Document Processing Agents – Perform operations such as splitting, organizing, and structuring large documents.Each agent is optimized for its respective function, allowing you to choose the right one based on your document type, complexity, and workflow requirements. 2. **Precision Prompting** — AI delivers the best results when guided by clear, specific instructions. Precision Prompting in CloudFiles enables businesses to define custom rules, tone, and output formats so AI responses stay accurate, consistent, and aligned with business goals.Through CloudFiles Document AI flow actions, you can prepare, query, and split documents using structured prompts that control how AI interprets and presents information, ensuring every output is precise, reliable, and business-ready. ## Specialized Agents (Coming Soon) Specialized agents extend functional agents for targeted use cases, such as forms with checkboxes, invoices, or compliance records. They are designed for enhanced accuracy and efficiency on specific document types and will complement functional agents for more focused automation. > Specialized Agents are currently under development and will be released in an upcoming update. --- # Functional Agents https://help.cloudfiles.io/salesforce/functional-agents # Functional Agents Overview of CloudFiles' specialized AI agents for document querying, direct querying, and document processing, with guidance on choosing the right one. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction We offer a suite of specialized AI agents, each designed to handle different document processing and querying needs. These agents are categorized into three main types based on their functionality: Document Querying Agents allow you to upload documents and then query their content, enabling you to extract insights, ask questions, and analyze information from your uploaded files. Direct Querying Agents provide immediate AI assistance for general questions and tasks. Document Processing Agents for document operations such as splitting. Each agent has been optimized for specific use cases, allowing you to choose the most appropriate tool based on your document type and complexity requirements, maximize efficiency and achieve better results in your document workflows. > **Note** — These following agents are configured by default at the account level currently:Query: cloudfiles-searis-v1DirectQuery: cloudfiles-revia-v1Split: cloudfiles-divira-v1Refer to Settings to know how to change these default agents. ## Document Querying Agents These agents allow you to upload documents and query their content. You can test out these agents in our playground, refer to Document AI Playground Test Drive article. ## cloudfiles-searis-v1 Best for: Basic document querying - Provides fundamental search and query capabilities on processed documents - Ideal for straightforward information retrieval tasks ![](https://media.help.cloudfiles.io/dai-functional-agents-sf/01.png) ## cloudfiles-searis-v2 Best for: Advanced document querying with reasoning - Enhanced understanding of complex queries through advanced reasoning capabilities - Superior query interpretation compared to v1 - Better suited for nuanced questions that require context understanding ![](https://media.help.cloudfiles.io/dai-functional-agents-sf/02.png) ## cloudfiles-searis-aux-v1 Best for: Interactive documents with form elements - Specialized for documents containing checkboxes, radio buttons, forms, and interactive elements - Optimized to understand and work with structured document components ![](https://media.help.cloudfiles.io/dai-functional-agents-sf/03.png) ## Direct Querying Agents These agents provide immediate AI assistance without requiring any document uploads. ## cloudfiles-revia-v1 Best for: General AI assistance - Direct interaction with the AI agent without needing to upload documents - Ideal for general queries, and immediate AI assistance that don't require document analysis > **Using AI for General Queries** — Not all queries need to be executed on a specific document. If you want to run a general AI-based query that does not require document data, you can simply omit the Processed Document ID when executing the query.This allows CloudFiles AI to process the query independently, focusing only on the text input you provide. This can be useful in scenarios where:You have pre-extracted data from documents and need AI to structure or analyze it further.You need AI to generate text-based responses, summaries, or formatted outputs based on user-defined parameters.Example Use Case: Generating an Email from Extracted DataConsider a scenario where you have processed an invoice document and extracted key details such as:Invoice Number: INV-20240319-001Invoice Amount: $2,500.00Primary Contact Name: John DoeDue Date: March 25, 2025Now, instead of querying the document again, you want AI to generate a structured email using these extracted details.How to Configure This in Salesforce FlowYou can create a Flow Text Formula Resource to format the extracted details into a structured prompt for AI processing.📌 Query Example:"Below are the identified details from an invoice: Invoice Number = {Invoice Number Query Result}, Invoice Amount = {Invoice Amount Query Result}, Primary Contact = {Client's Primary Contact Name Query Result}, Due Date = {Invoice Due Date Query Result}. Now, based on the provided details, compose a structured email to the primary contact. The email should: - Greet the contact by name. - Inform them about the invoice details in a professional and concise manner. - Politely request confirmation of the invoice details. - Provide a closing statement expressing appreciation and offer support if needed."Generated Email Output (Expected Result):Subject: Invoice Confirmation – INV-20240319-001 Dear John Doe, I hope you are doing well. We would like to confirm the details of your latest invoice: Invoice Number: INV-20240319-001 Invoice Amount: $2,500.00 Due Date: March 25, 2025 Please review the above details and let us know if everything is correct. If there are any discrepancies, kindly reply to this email at your earliest convenience. Looking forward to your confirmation. Thank you for your time! Best regards, [Your Name] [Your Company] ```text Invoice Number = {Invoice Number Query Result}, Invoice Amount = {Invoice Amount Query Result}, Primary Contact = {Client's Primary Contact Name Query Result}, Due Date = {Invoice Due Date Query Result}. ``` Now, based on the provided details, compose a structured email to the primary contact. The email should: - Greet the contact by name. - Inform them about the invoice details in a professional and concise manner. - Politely request confirmation of the invoice details. - Provide a closing statement expressing appreciation and offer support if needed." Generated Email Output (Expected Result): Subject: Invoice Confirmation – INV-20240319-001 Dear John Doe, I hope you are doing well. We would like to confirm the details of your latest invoice: Invoice Number: INV-20240319-001 Invoice Amount: $2,500.00 Due Date: March 25, 2025 Please review the above details and let us know if everything is correct. If there are any discrepancies, kindly reply to this email at your earliest convenience. Looking forward to your confirmation. Thank you for your time! Best regards, [Your Name] [Your Company] ## Document Processing Agents ## cloudfiles-divira-v1 Best for: Document segmentation and organization - Intelligently splits large documents into smaller, manageable sections - Uses custom rules defined in your prompts to determine split points - Excellent for organizing lengthy documents or creating structured document hierarchies For more information on splitting action, you can refer to the split action article. ## Choosing the Right Agent The table below provides a quick reference to help you match each agent with its most suitable use case. | Agent | Use Case | |---|---| | cloudfiles-searis-v1 | For basic queries on documents. | | cloudfiles-searis-v2 | For complex analysis on documents requiring reasoning. | | cloudfiles-searis-aux-v1 | For querying documents with interactive elements such as checkboxes. | | cloudfiles-revia-v1 | For immediate AI assistance for general questions. | | cloudfiles-divira-v1 | For splitting and organizing large documents. | --- # Precision Prompting https://help.cloudfiles.io/salesforce/precision-prompting # Precision Prompting Precision Prompting lets businesses give CloudFiles Document AI custom instructions, rules, and formatting guidelines so AI outputs stay accurate, consistent, and business-ready across the Process, Query, and Split flow actions. > Kind: Guide · Updated: Jul 4, 2026 AI agents are incredibly powerful, but their effectiveness depends on the instructions they receive. Vague or generic prompts can lead to incomplete, inaccurate, or business-irrelevant outputs, and different industries have unique requirements. This highlights the need for a systematic approach that ensures AI outputs align precisely with business objectives. Precision Prompting lets businesses provide AI with custom instructions, rules, and formatting guidelines to control tone, detail, and output style, apply business-specific rules (like currency conversion or bullet-point summaries), and ensure consistent, reliable results across documents. This makes every AI interaction business-ready and precise. CloudFiles Document AI empowers this approach through its flexible flow actions: The Process Document using AI action prepares documents for AI processing, making them ready for querying and analysis. You can fine-tune how documents are handled by specifying the following optional inputs: Instructions – These act as the foundation for effective prompting. By supplying context during processing, like which sections to focus on, expected formats, or key fields, CloudFiles Document AI interprets documents with higher accuracy. This ensures that when you later run a prompt, the AI is already primed to deliver precise, structured results. > For more information refer to the article Process Document using AI . ![](https://media.help.cloudfiles.io/dai-precision-prompting-sf/01.png) The Query Document/Dataset action lets you run natural language prompts to extract, classify, or generate information from already processed documents. Query - You can guide AI using natural language prompts to extract, classify, or generate information from processed documents. Clearly defining formats, units, or detail levels helps the AI avoid ambiguity, produce structured outputs, focus on relevant data. This enables consistent, accurate results and supports complex workflows where multiple queries can be combined in a controlled, repeatable manner. > ExampleIn this example, we guide the AI with clear processing instructions and a query defined with a strict output format. Exception handling is also included to ensure the extracted data is accurate, structured, and directly usable from the document.Processing Instructions:"You are an AI agent specialized at extracting data from Driver's License or Passport. Your task is to accurately extract structured data from the document. The common components you should recognize and extract include: Document Type, Document Number, Full Name of the document holder, date of issue, date of expiry."Query:" Identify the type of KYC document provided (e.g., Passport, Driver's License). Extract the following fields from the document: Document Type (e.g., 'Passport', 'Driver's License') Document Number Full Name of the document holder Date of Issue (in YYYY-MM-DD format) Date of Expiry (in YYYY-MM-DD format) Return only the structured JSON in this exact format: { "KYC_Document_Type__c": "", "KYC_Document_Number__c": "", "KYC_Document_Holder_Name__c": "", "KYC_Document_Issue__c": "", "KYC_Document_Expiry__c": "" }\n If any field is missing or unreadable, return its value as null. Only return the JSON object and nothing else."The AI output as tested on the above sample document is as follows:{ "KYC_Document_Type__c": "Driver's License", "KYC_Document_Number__c": "64040738293", "KYC_Document_Holder_Name__c": "KOWALSKI JAN", "KYC_Document_Issue__c": "2019-03-06", "KYC_Document_Expiry__c": "2028-01-18" } > For more information refer to the article Query Document/Dataset . ![](https://media.help.cloudfiles.io/dai-precision-prompting-sf/03.png) The Split Document using AI action uses AI to automatically separate merged PDFs into individual documents for easier processing. Instructions: Define how documents should be interpreted and split. Use contextual cues to improve accuracy for varied formats. Example: "This is a bundle of scanned purchase orders. Each purchase order starts with a bold header containing the name of the company or its logo. Split at each occurrence of this pattern and name them as the name of the company." Specific instructions can guide the AI, improving the accuracy of the split. > For more information refer to the article Split Document using AI . ![](https://media.help.cloudfiles.io/dai-precision-prompting-sf/04.png) These features make CloudFiles Document AI relevant across industries. - In finance, prompts can enforce formatting rules such as ₹ currency, decimal precision, and ISO-standard dates, ensuring invoices are summarized with line items and totals in bold for faster audits. - In legal applications, AI can extract and summarize clauses with their section references, returning outputs like “Clause Number + Summary” for compliance checks, making review processes more efficient and reliable By combining Precision Prompting with CloudFiles versatile AI flow actions, businesses can ensure that AI interactions are precise, consistent, and aligned with their unique operational requirements, turning raw document data into actionable insights efficiently. --- # Universal File Intelligence https://help.cloudfiles.io/salesforce/universal-file-intelligence # Universal File Intelligence CloudFiles Document AI brings intelligent document processing into Salesforce with adaptive OCR/NLP, format-agnostic reading, omni-source file access, and large-scale selective page processing. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction Every organization relies on documents, contracts, invoices, IDs, purchase orders, reports, and more. But these files come in different formats, live across multiple systems, and are often scanned, handwritten, or multilingual. Traditional document-processing tools struggle with this variety, creating delays, errors, and inefficiencies. CloudFiles Document AI eliminates these barriers by bringing intelligent document processing directly into Salesforce, whether you’re working with a single document or processing multiple related files together as a dataset. Unlike rigid systems, its core features include: - Adaptive Content Intelligence – Uses OCR and NLP to accurately read printed, handwritten, scanned, or multilingual documents, even from low-quality images. - Format-Agnostic Reading – Supports multiple file types such as PDF, DOCX, XLSX, PPTX, CSV, and images without requiring conversions. - Omni-Source Access – Processes files from Salesforce, external storage platforms, email, or e-signature integrations without manual transfers. - Large & Selective Processing – Handles high-volume documents efficiently and allows processing of only selected pages or sections as needed. With CloudFiles Document AI, teams can automate data entry, accelerate workflows, and reduce errors, transforming messy, unstructured files or multi-file datasets into reliable Salesforce insights ## Adaptive Content Intelligence Business documents come in all shapes, sizes, and qualities. From crystal-clear PDFs to blurry ID scans, from neatly typed invoices to hurried handwritten notes , traditional OCR often struggles to keep up. Adaptive Content Intelligence in CloudFiles Document AI solves this problem by combining advanced OCR with Natural Language Processing (NLP). It reads printed, handwritten, scanned, and multilingual content, even from low-quality images, and returns structured data that Salesforce can immediately use. When a single file or a dataset of multiple files is uploaded, CloudFiles Document AI scans content across pages and applies AI-powered OCR and NLP to detect and extract text with high accuracy. The intelligence remains consistent whether processing one document or many. > The best way to experience this is through the AI Playground. You can upload a sample file, a scanned PD, a handwritten note, a multilingual ID, or even a blurred image, and instantly preview the extraction accuracy before implementing it in flows or automations. This adaptability opens up powerful workflows across industries. For example - A handwritten doctor’s prescription with unclear strokes can be digitized into structured data. ![](https://media.help.cloudfiles.io/dai-universal-file-intelligence-sf/01.png) - Financial services teams can process blurry passports, driver’s licenses, and income proofs, automatically updating loan records in Salesforce. ![](https://media.help.cloudfiles.io/dai-universal-file-intelligence-sf/02.png) With Adaptive Content Intelligence, CloudFiles Document AI transforms unstructured, messy, or international documents into usable Salesforce data , fast, accurate, and scalable. No matter the industry or document type, CloudFiles ensures workflows don’t stall because of “unreadable” files. Test it now in the AI Playground and see it in action. ## Format-Agnostic Reading Documents comes in many forms , PDFs, docs, spreadsheets, presentations, or images. Traditional systems often require manual conversions, causing delays, errors, and extra work. Format-Agnostic Reading in CloudFiles Document AI solves this challenge by handling information across multiple file types without requiring conversions or extra tools. Whether it’s a PDF, Word document, Excel spreadsheet, PowerPoint presentation, plain text file, or even an image, the system can read and process the content directly. By supporting data in its native form, it accelerates workflows, eliminates compatibility barriers, and ensures users can work seamlessly with diverse documents. When a file or dataset is uploaded, CloudFiles Document AI automatically detects each file’s format and processes it without any manual steps. It extracts text, tables, and contextual data across diverse file types, even when multiple file formats exist within the same dataset, ensuring insights are captured consistently. This adaptability opens up powerful workflows across industries. For example - A purchase order received in .docx format can be processed automatically, with order line items extracted and stored directly in the relevant Salesforce record as shown in the below image. ![](https://media.help.cloudfiles.io/dai-universal-file-intelligence-sf/03.png) - A insurance team can process insurance claim documents available as .pdf to extract relevant information. ![](https://media.help.cloudfiles.io/dai-universal-file-intelligence-sf/04.png) > CloudFiles Document AI supports a wide range of file types:.PDF.DOCX.XLSX.PPTX.CSV.PNG and .JPEGThe extracted output is delivered in text format, which can be mapped to Salesforce fields, passed into flows, or integrated with APIs. This ensures both flexibility and real-time usability across workflows. This support applies to both individual files and multi-file datasets, allowing businesses to process mixed-format batches in a single operation. With Format-Agnostic Reading, CloudFiles Document AI makes sure no document is left behind due to its format. By removing the friction of conversions, it gives teams faster access to insights, reduces errors, and simplifies the way data flows across business systems. Try it today in this test drive. ## Omni-Source Access Business files rarely live in one place. Sales contracts may be attached directly in Salesforce, project reports might sit in external storage, and new files often arrive via email or e-signature apps. Traditional workflows force teams to download and re-upload files into a single tool before using them, creating inefficiencies, delays, and version mismatches. Omni-Source Access in CloudFiles Document AI solves this by making all these files usable instantly. Whether a single file or a dataset is stored inside Salesforce, linked from external storage, or received through integrations, CloudFiles can process it directly without any manual transfers. This flexibility opens up powerful workflows across industries. For example: - A hospital clerk processes a patient’s ID from Salesforce Files, prescription PDF from email, and digitally signed consent, attaching structured data into Health Cloud. ![](https://media.help.cloudfiles.io/dai-universal-file-intelligence-sf/05.png) > CloudFiles supports a wide range of external storage providers. You can refer to the External Storage / Library Configuration article for more information. With Omni-Source Access, CloudFiles Document AI eliminates version mismatches, and delays. Teams can work with Salesforce files, external storage files, and integration-based files, without disrupting existing workflows. ## Large and Selective Processing Documents aren’t always small and simple. Some are short KB-sized files, while others are high-volume with thousands of pages, detailed tables, or lengthy reports. Traditional systems often struggle with these large documents, slowing down, failing mid-process, or forcing users to extract only a limited set of pages. Large & Selective Processing in CloudFiles Document AI eliminates these barriers. It can process high-volume documents or large multi-file datasets while maintaining accuracy and speed. Even better, users don’t need to process the entire file every time, they can target only the specific sections or pages that matter most, saving time and resources. > The best way to experience this is through the AI Playground. Upload a large file, such as a multi-hundred-page PDF, choose whether to process all pages or a selected range, and instantly preview the extracted output mapped into Salesforce fields. This flexibility creates powerful workflows across industries. For example: - A legal team receives a 1795-page contract with multiple cases. Instead of processing the entire document, they can select only the relevant pages, and the system extracts the required information, saving time and ensuring accuracy. ![](https://media.help.cloudfiles.io/dai-universal-file-intelligence-sf/06.png) With Large & Selective Processing, CloudFiles Document AI makes working with big and complex documents effortless. No matter the file size or number of pages, you can decide what to process and get results quickly. Test it now in the AI Playground and see how CloudFiles handles both the largest and most selective document needs. --- # Intelligent Document Queries https://help.cloudfiles.io/salesforce/intelligent-document-queries # Intelligent Document Queries CloudFiles Document AI combines OCR and NLP so teams can query documents in natural language, get output in multiple formats, and extract deep structured data merged with Salesforce. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction In today’s business landscape, organizations handle a vast array of documents—contracts, invoices, KYC forms, medical records, purchase orders, and more—that are often scattered across systems, in different formats, or even handwritten and multilingual. Extracting key information from these files can be slow, error-prone, and inefficient when relying on traditional search or manual processing. CloudFiles Document AI transforms document workflows by combining advanced OCR with Natural Language Processing (NLP), enabling businesses to quickly find, analyze, and act on information. Its capabilities include: - NLP-Powered Q&A: Ask questions in natural language and get precise answers from any document instantly. Supports complex queries, multilingual text, and reduces manual search time. - Multi-Format Output: Extracted data can be delivered as plain text, structured tables, charts, or summaries, adapting seamlessly to your workflow and eliminating the need for manual reformatting. - Deep Data Extraction: Pull structured text, tables, and metadata from across pages and file types, and merge results directly with Salesforce for a unified, enriched view of your records. With CloudFiles Document AI, teams can automate data entry, accelerate workflows, and reduce errors, unlocking the full value of their documents without extra effort. ## NLP-Powered Q&A When working with large documents, contracts, compliance files, KYC documents, or diagnostic reports, finding answers is often tedious. Traditional keyword-based search tools only highlight text but don’t provide direct answers, forcing users to manually interpret results. This creates inefficiencies, slows down decision-making, and increases the chances of missing critical details. The NLP-Powered Q&A feature solves this by allowing you to interact with documents in plain English (or any natural language). You ask a question, and CloudFiles AI gives you the precise answer from the document, instantly. > Upload a document to AI Playground to try it now. For example:Query: “What is the expiry date of this driver's license? Output only the date in DD/MM/YYYY format.”Output: “01/08/2029"Query: Extrahiere nur die vollständige Firmenadresse aus dem verarbeiteten Dokument. Gib die Adresse als einfachen Text zurück, ohne zusätzliche Details, Beschriftungen oder Formatierungen.Output: Beispiel GmbH, Musterstraße 12, 10115 Berlin This capability opens up wide-ranging applications. For instance, a lawyer can extract key clauses from long contracts in seconds, or compliance teams can quickly identify required identity documents and agendas from regulatory filings. Powered by advanced NLP, Intelligent Document Queries supports general queries, file-based queries, making document exploration faster and smarter. With this feature, businesses no longer need to waste time digging through unstructured text. Try it now in the AI Playground and see how quickly you can find exactly what you need. ## Multi-Format Output Extracting information is only the first step, what often slows down workflows is the inconsistency in how information is structured across documents. Users often spend time cleaning, aligning, and reformatting data just to make it usable. Multi-Format Output in CloudFiles Document AI eliminates this hassle by enforcing consistent, structured outputs regardless of the document’s original format. Whether you need plain text for quick checks, a concise summary for an overview, or organized data in tables and charts for deeper analysis, the output adapts seamlessly to your workflow. > Upload a document to AI Playground to try it now.Ask a query on any uploaded document. Choose your preferred output:Formatted Results: in JSON, CSV etc;The below query follows the best practice for prompting that will ensure accurate resultsQuery: {Instruction}: You are an AI trained to extract structured data from documents.{Task}: Extract all line items from the provided Purchase Order document. For each line item, extract the following fields: Line Item Name, Quantity (whole number), Unit Price (currency value with two decimals), Line Amount (currency value with two decimals){Output_Format}: Return results only as a JSON array of objects with these keys: Item_Name__c, Quantity__c, Unit_Price__c, Line_Amount__c{Rules}:If any field is missing, set its value to null.Quantity must be an integer.Unit Price and Line Amount must be numbers with exactly two decimal places.Output only the JSON array. No extra text, comments, or explanation.{Example}: [{"Item_Name__c": "Item A", "Quantity__c": 10, "Unit_Price__c": 15.50, "Line_Amount__c": 155.00}, {"Item_Name__c": "Item B", "Quantity__c": 5, "Unit_Price__c": null, "Line_Amount__c": 75.00 }]Output:[ { "Item_Name__c": "Platinum web hosting package Down 35mb, Up 100mb", "Quantity__c": 1, "Unit_Price__c": 65.00, "Line_Amount__c": 65.00 }, { "Item_Name__c": "2 page website design Includes basic wireframes, and responsive templates", "Quantity__c": 3, "Unit_Price__c": 2100.00, "Line_Amount__c": 2100.00 }, { "Item_Name__c": "Mobile designs Includes responsive navigation", "Quantity__c": 1, "Unit_Price__c": 250.00, "Line_Amount__c": 250.00 } ] Applications can span across industries for example operations teams can automatically extract order or shipment details, and finance teams can quickly consolidate line-item data across invoices. CloudFiles powers this adaptability by converting AI responses into multiple layouts and export-ready formats. With Multi-Format Output, the same answer works for multiple needs—no reformatting, no wasted time. Test it in the AI Playground and see how easily it molds to your way of working. ## Deep Data Extraction Documents often contain far more than just words. Tables, metadata, and structured data are usually embedded deep inside, spread across pages and formats that make manual extraction painful and error-prone. Deep Data Extraction in CloudFiles Document AI is designed to solve this challenge by going beyond surface-level OCR. It pulls structured text, tabular data, and metadata with precision and merges the results directly with Salesforce, giving you a unified and enriched view of your records. > Upload a document to AI Playground, ask a query to try it out.For example we upload a 3 page document that contains information of various insurance claims.Ask complex queries beyond the surface-level OCR, that requires computing for example:Query: Instruction: Calculate the total amount of insurance claims raised in the year 2024. Task: Review the document for all insurance claims raised during 2024. Sum up the claim amounts. Return the total amount as a single numeric value, preferably with currency formatting if applicable. Example Output: $1,250,000Output: $40,889.86Ask queries that use data directly from Salesforce fields, allowing you to dynamically extract, filter, or compare information based on your Salesforce records.You can use this feature in the flow actions.Query: Instruction: Find the Claim ID for a specific claimant.Task: Search the document for claims where the claimant name matches {!$Record.Patient_Name__c}. Extract and return the corresponding Claim ID(s) as plain text.Ouput: 2024001882 The applications span multiple industries, offering significant efficiency gains across various domains. In the insurance sector, the solution can automatically extract claim details, policy numbers, and settlement amounts from lengthy claim forms, enabling faster approvals and more accurate reporting. In the legal industry, it can identify and extract key clauses, dates, and party information from multi-page contracts, ensuring compliance, and supporting litigation processes. By providing a unified view of structured and unstructured data, Deep Data Extraction not only accelerates workflows but also improves data accuracy, transparency, and decision-making. Businesses no longer need to rely on manual extraction or risk missing critical insights hidden deep within documents. --- # Datasets (Intelligent Document Queries) https://help.cloudfiles.io/salesforce/datasets # Datasets CloudFiles Datasets let you group documents and Salesforce data into a single collection to analyze them collectively using AI. > Kind: Guide · Updated: Jul 4, 2026 In many business workflows, decisions rely on multiple related inputs rather than a single file. For example, a customer onboarding package may include identification documents, agreements, and tax forms, along with customer data from Salesforce. Similarly, a procurement transaction may involve quotes, purchase orders, invoices, and related system records. When these inputs are analyzed individually, it becomes difficult to understand how they relate to each other. Comparing information across documents and system data often requires manual effort, and automation becomes harder when insights depend on multiple sources together. CloudFiles Datasets solve this by allowing you to group documents and Salesforce data into a single collection and analyze them collectively using AI. ## How Datasets Work A Dataset represents a unified collection of all inputs relevant to a workflow or process, including both documents and Salesforce data. Rather than treating each file or data source in isolation, CloudFiles brings them together into a single context, enabling them to be analyzed as one cohesive unit. This enables two powerful capabilities: - Cross-Document Analysis – AI can analyze multiple files together to compare values, detect duplicates, identify inconsistencies, or extract insights across documents. - Document + Salesforce Data Analysis – Queries can combine information from documents with Salesforce data, allowing workflows that depend on both structured and unstructured information. By working at the dataset level, CloudFiles enables workflows where the value comes from understanding how different inputs relate to each other, rather than simply extracting information from a single file. > Datasets are created using the Create Dataset flow action, which generates a unique Dataset ID. Documents can then be associated with this dataset so they can be analyzed collectively. AI queries can be executed across the dataset using the Query Document/Dataset or Query Document/Dataset (Batch) actions, allowing natural language prompts to reference multiple documents at once. ## Industry Use Cases Datasets are useful in any scenario where multiple documents contribute to a single business decision. Legal teams can use datasets to compare different versions of contracts and identify changes before final approval. Procurement teams can group invoices, purchase orders, and supporting documents for a transaction and verify that values match across files. Financial institutions can analyze multiple onboarding documents together to validate identity information and ensure consistency. Datasets are also valuable in audit and compliance workflows, where reviewers often need to analyze document collections rather than individual files. > Upload multiple documents to the Dataset and use the Dataset Playground to run queries across all files in that dataset.For example, you upload a dataset containing multiple purchase order (PO) documents submitted by different schools or departments to the same vendor.These documents may include duplicate purchase orders, corrected versions, or resubmitted orders for the same purchase.Ask queries that analyze information across all documents in the dataset, such as identifying duplicate purchase orders based on key fields like PO number, vendor, or order details.For example:Query: Instruction: Detect duplicate purchase orders.Task: Review all documents in the dataset and identify purchase orders that have the same PO/Order Number, vendor name, and delivery organization. Return the PO numbers that appear to be duplicates. If multiple duplicates exist, list them as separate entries.Output:[{"PO Number":"121212","Vendor Name":"CloudFiles Learning Solutions","Delivery Organization":"Sample High School (46101)"}] You can easily test the Dataset feature directly within CloudFiles. In the CloudFiles Document AI tab, create a dataset to group your related documents into a single collection. Once the dataset is created and documents are added, you can open the Dataset Playground to run queries across the dataset. --- # Automation & Bulk Actions https://help.cloudfiles.io/salesforce/automation-and-bulk-actions # Automation & Bulk Actions CloudFiles automation features ensure that every document is captured, processed, and acted upon the moment it enters your system. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction CloudFiles automation features ensure that every document is captured, processed, and acted upon the moment it enters your system. By combining multi-source triggers, AI-powered flow actions, and intelligent data mapping, CloudFiles enables fully automated, end-to-end document workflows inside Salesforce. These capabilities work together to eliminate manual intervention, maintain data accuracy, and ensure documents drive business processes instead of slowing them down. 1. **Multi-Source Triggers** — The Multi-Source Triggers feature automatically detects and initiates processing for files added or updated across Salesforce, external storages, emails, and CloudFiles components. It ensures every document is instantly captured, analyzed, and routed through automated workflows, creating a unified and seamless document processing experience. 2. **AI Flow Actions** — CloudFiles AI Flow Actions bring intelligence and automation directly into document workflows. They enable you to process, query, and split documents using AI, transforming static files into structured, actionable data. Each action works together to ensure documents are intelligently processed, analyzed, and routed, creating seamless end-to-end automation within Salesforce. 3. **Document Mapper** — Document Mapper allows users to automatically create and update Salesforce records from uploaded files using AI. With its intuitive, no-code setup, it intelligently maps document data to Salesforce fields, saving hours of manual effort and ensuring accuracy across parent and child records. 4. **Workflows** — Workflows turns a multi-step document process into a single no-code canvas: read documents with AI, compare the results against Salesforce records, branch and loop on your own rules, and write back as many creates or updates as the outcome calls for, with an optional human review gate before anything is written. --- # Multi-Source Triggers https://help.cloudfiles.io/salesforce/multi-source-triggers # Multi-Source Triggers Multi-Source Triggers automatically detect file additions or updates across Salesforce, connected storage systems, and CloudFiles components, generating CloudFiles Events that trigger AI-powered processing. > Kind: Guide · Updated: Jul 4, 2026 Files today come from everywhere, Salesforce manual uploads, External Cloud Storages (SharePoint, Google Drive etc.), inbound emails, or other third party integrations. Without a unified system to detect and process these files, organizations end up creating fragmented workflows and missing automation opportunities. Multi-Source Triggers automatically detect file additions or updates across Salesforce, connected storage systems, and CloudFiles components. Each event, whether it's a new upload, file update, or folder creation, generates a CloudFiles Event that can be used to trigger AI-powered processing or any other downstream workflow. Once configured, CloudFiles ensures every document is captured, analyzed, and routed, no matter its source. > Refer to Intercepting CloudFiles Events article for more information. Across industries, multi-source triggers simplify document workflows by automating AI processing from multiple entry points. In insurance, claim forms uploaded via Email-to-Case or SharePoint folders are automatically processed by Document AI to extract key details. In manufacturing, when a supplier uploads an invoice to OneDrive, AI processing captures the invoice data and updates Salesforce records. CloudFiles can initiate processing from multiple channels. Below are all supported trigger categories along with their corresponding CloudFiles Event Types and descriptions. ## Salesforce-Based Triggers CloudFiles integrates natively with Salesforce, enabling AI processing when key record or file-related events occur. You can automate processing when a file is attached, a record changes, or another Salesforce-integrated app uploads a document. Common Trigger Scenarios - A file is attached to a Salesforce record (e.g., Case, Opportunity, Lead). - A record is created or updated, triggering a new processing workflow. When key fields like status or stage change, Cloudfiles Document AI can automatically process files, and initiate the next step in the workflow. - A file is received via Email-to-Case or other native integrations. Attachments coming in through inbound emails or Salesforce-connected channels are auto-ingested for processing. - An external app pushes files into Salesforce. Files uploaded through third-party platforms can be automatically processed once they reach Salesforce. Relevant CloudFiles Event Types | Event Type | Description | |---|---| | salesforce-file-attached | Triggered when a file is uploaded to Salesforce native storage (e.g., via Files or Notes & Attachments). | ## CloudFiles Document Management CloudFiles Document Management integrates seamlessly with external storage systems such as Google Drive, SharePoint, OneDrive, and AWS S3, as well as with CloudFiles Components (widgets, Datarooms, and Lightning Components) embedded within Salesforce. Files that are uploaded, modified, deleted, or accessed through any connected source can automatically trigger AI-driven workflows for document classification, data extraction, and downstream automation. Common Trigger Scenarios - New file upload: Files added via external storage, CloudFiles widgets, or Dataroom File Requests automatically initiate Document AI processing. - File modification or replacement: Updated files trigger re-processing or metadata synchronization in Salesforce. - Folder creation: Folders created via Flow or CloudFiles actions can initiate automated organization or compliance workflows. - File or folder cloning: Deletions or cloning operations can trigger cleanup or downstream process updates. - Merged document split: Automatically splits combined documents into individual records through Document AI. Relevant CloudFiles Event Types | Event Type | Description | |---|---| | resource-attached | Triggered whenever a file or folder in external storage is attached to a Salesforce record. | | content-version-created | Triggered when a Salesforce File (Content Document) is created from an external storage file. | | resource-updated | Triggered when metadata of a file or folder is updated from Salesforce. | | file-uploaded | Triggered when a file is uploaded to external storage via the CloudFiles widget in Salesforce. | | resource-cloned | Generated for each successful external resource cloning operation, enabling chained or downstream processes. | | file-received | Triggered when a file is uploaded via the File Request module in a CloudFiles Dataroom. | | document-split | Triggered after a merged file is automatically split into separate documents by Document AI | > There are additional events beyond those mentioned here, which can be used as per your specific use case. Refer to the All Event Types article to learn more. ## Summary Multi-Source Triggers in CloudFiles automatically detect and respond to file activities such as uploads, updates, or folder creations across Salesforce, external storage systems (like SharePoint, Google Drive, etc;), inbound emails, and CloudFiles components. Each activity generates a CloudFiles Event that can initiate AI-driven workflows for document classification, data extraction, and automation. This ensures every file, regardless of its origin, is intelligently captured, processed, and routed within your workflows, reducing manual effort and fragmentation across systems. --- # AI Flow Actions https://help.cloudfiles.io/salesforce/ai-flow-actions # AI Flow Actions CloudFiles' AI-powered Flow Actions bring intelligence and automation into document workflows by processing, querying, and splitting documents automatically. > Kind: Guide · Updated: Jul 4, 2026 In every organization today, managing documents has quietly become one of the biggest hidden time-drains. Teams spend hours uploading, labeling, searching, and extracting information from files, whether it’s KYC documents for onboarding customers, invoices for finance approvals, or contracts that need to be verified. Despite the shift to digital, much of this work still feels manual and repetitive CloudFiles uses AI-powered Flow Actions that bring intelligence and automation right into your document workflows. Instead of just storing files, it helps you understand and act on them. These Flow Actions work together to transform static documents into dynamic data that drives business decisions automatically. You can use the following flow actions to process files, extract data, classify or split the files received and trigger the respective flows. ## Processing the Document Every intelligent workflow begins with preparation, and that’s exactly what CloudFiles Process Document using AI action does. ![](https://media.help.cloudfiles.io/dai-ai-flow-actions-sf/01.png) Before you can ask questions or extract insights from a file, it needs to be processed so the AI can understand it. This action takes documents like PDFs, images, or scanned files and converts them into an AI-readable format. Once processed, the document becomes searchable, structured, and ready for analysis. > Once the file is processed a document-processed event is generated that can be used to trigger follow-up flows. For example, imagine a company receiving hundreds of KYC documents daily. Instead of employees manually reviewing each one, CloudFiles can automatically process every new upload, making each document ready for automated checks or information extraction. ## Querying the Document The Query Document actions allow you to execute natural language prompts on documents that have already been processed using the Process Document using AI action. ![](https://media.help.cloudfiles.io/dai-ai-flow-actions-sf/02.png) These actions enable dynamic querying, classification, and data extraction from processed documents, for instance, identifying document types (e.g., Passport, Driving License) or extracting key fields such as name, issue date, passport number, and expiry date. You can choose between two variants based on your use case: - Query Document/Dataset : Executes a single prompt or query on a processed document. Ideal for specific data retrieval or classification tasks. - Query Document/Dataset (Batch) : Executes multiple prompts in one go, allowing batch querying, classification, or extraction of multiple data fields simultaneously. This helps minimize the number of flow elements and reduces the risk of flow timeouts during large-scale or multi-query processing. > Returns either a single text result (Query Document) or a collection of responses (Query Document(Batch)). These results can be looped through, mapped to corresponding Salesforce fields, or used for decision-making within the flow. Additionally, the action supports general AI queries without a document reference for instance, generating structured text or emails based on extracted data. ## Splitting Document The Split Document using AI flow action automatically separates merged PDFs, like bundles of invoices or multi-document contracts into individual, well-labeled files using artificial intelligence. It works with both Salesforce Files and files stored on external storages, intelligently identifying document boundaries and generating searchable, OCR-enhanced files. ![](https://media.help.cloudfiles.io/dai-ai-flow-actions-sf/03.png) Each split file is auto-named based on its content (e.g., invoice number, vendor name) and can be stored in Salesforce or your preferred cloud drive. Once the process is complete, a document-splitevent is published, allowing you to trigger follow-up flows like record creation or notifications making the process fully automated. ## Summary With AI Flow Actions, CloudFiles transforms document management from a manual task into a seamless, intelligent workflow. By automatically processing files into AI-readable formats, querying them for key details, and splitting merged PDFs into organized, well-labeled documents, CloudFiles ensures every step happens effortlessly. Each action triggers the next through events enabling end-to-end automation that saves time, improves accuracy, and keeps your Salesforce workflows running smoothly without manual intervention. --- # Document Mapper (Guide) https://help.cloudfiles.io/salesforce/document-mapper # Document Mapper Document Mapper combines AI-powered extraction with Salesforce automation, using configurable mapper fields and prompts to extract data from uploaded files and map it into parent and child Salesforce records. > Kind: Guide · Updated: Jul 28, 2026 Getting document data into Salesforce usually means typing it in by hand — and the moment a document carries more than a few simple fields, the work multiplies. Picklists have to match your exact values, lookups have to be matched to records that already exist, and a single document often needs to populate a parent record and its related records at once. Document Mapper handles all of it in one place. You pick a Salesforce object, describe what you want in plain language, and AI does the extraction, the matching, and the record creation — no code, and no jumping between tools. Every field type on your object is supported natively, so there's nothing a document can throw at you that has to be handled somewhere else. Each configuration you build is saved with a unique Config ID that stores your mapping logic and can be reused anywhere — a list view button, a record detail button, or a Salesforce Flow. ![The Create New Mapper Configuration dialog](https://media.help.cloudfiles.io/dai-document-mapper-sf/ef55c7b8.png) ## Every Field Type, Handled in One Place The heart of Document Mapper is a single workspace where every field on your object is mapped the same simple way. Fields are automatically grouped by the role they play — Main Record, Lookups, and Child Relationships — and each field carries a type badge so you always know what you're working with. Whatever the type, the approach is the same: tell the mapper what you want in plain language, and it takes care of the rest. ![The mapper workspace with fields grouped into Main Record, Lookups, and Child Relationships](https://media.help.cloudfiles.io/dai-document-mapper-sf/bd0856b6.png) For most fields — text, numbers, currency, dates, and the like — a short description of what to pull from the document is all it takes. The AI finds the value and formats it correctly for the field. The field types that usually need extra care are handled just as easily here: Picklists are matched to your exact Salesforce values, even when the document uses different wording. You can add a short prompt to any value to tell the AI precisely when that value should be chosen, so results always land on valid, on-model options. ![The picklist editor showing allowed values with a per-value prompt](https://media.help.cloudfiles.io/dai-document-mapper-sf/1785f834.png) Multi-select picklists work the same way, with the AI free to choose more than one value when the document calls for it — capturing every applicable option rather than forcing a single choice. Lookups — the fields that usually mean writing code — are resolved right inside the mapper. Describe the match in plain language and the AI turns it into a reliable matching plan: typically a fuzzy match that tolerates small differences in spelling, spacing, or formatting between the document and your Salesforce records, though you can also ask for an exact match or a multi-step strategy that tries one approach and falls back to another. You keep clear control over what happens if nothing matches or several records match, and for teams that already have custom logic, an existing Salesforce Flow can be plugged in just as easily. Either way, unmatched documents are held back rather than creating bad data. ![A generated lookup matching plan using an 85% fuzzy match with the underlying SOQL](https://media.help.cloudfiles.io/dai-document-mapper-sf/925eaa61.png) ![The lookup configuration showing the Call Flow Action resolution option](https://media.help.cloudfiles.io/dai-document-mapper-sf/insert-12-a7d6d015.png) Child relationships let a single document populate several related records at once — line items on an order, partners on an account, purchase orders against a contract. Instead of processing the document once per record, Document Mapper reads the parent and all its related rows in one pass: you describe how to recognize each row in the document, map the fields on it, and the mapper creates every related record and links it back to the parent automatically. Rows can even carry their own lookups, matched to existing records the same way — so a document with one account and a dozen line items becomes a fully linked set of records in a single run. ![Line-item extraction configured against an invoice](https://media.help.cloudfiles.io/dai-document-mapper-sf/88f25762.png) ## See the Result Before You Commit Nothing is written to Salesforce until you're ready. Upload one or more sample documents, choose which of them to run the test on — testing on fewer documents uses fewer tokens — and Document Mapper shows you exactly what it extracted from each: every field value alongside a confidence score and a plain-language explanation of where it came from, plus the full set of related records it would create. ![The test-run Select sources step on an invoice](https://media.help.cloudfiles.io/dai-document-mapper-sf/dce2e122.png) ![Test results showing extracted invoice line items with a 0.97 confidence score](https://media.help.cloudfiles.io/dai-document-mapper-sf/1247016e.png) You can refine your descriptions and run again as many times as you like until the output is exactly right — all without leaving the mapper. Once you go live, you decide how much oversight each run gets. Leave a configuration on auto-approve and extracted records are written to Salesforce as soon as a run finishes. Switch it to send-to-review and every run pauses first for a person to check and approve — covered next. ## A Full Record of Every Run Every time a configuration processes a document, it's logged as a CloudFiles DocAI Run — giving you a complete, searchable history of what was processed, when, and how it turned out. Each run captures its status, the Config ID and version that produced it, the parent record it was tied to, and its owner. ![The CloudFiles DocAI Runs All Runs list view](https://media.help.cloudfiles.io/dai-document-mapper-sf/92623c3e.png) If a run fails, its record explains what went wrong and offers a Reprocess button so you can retry it in one click. Reprocessing creates a fresh run rather than overwriting the original, so your history stays intact and you can always see exactly what happened. ![A failed run record showing a Processing failed message and a Reprocess button](https://media.help.cloudfiles.io/dai-document-mapper-sf/e70ca346.png) ### Review, Edit, and Approve Before Anything Is Written Not every run should write to Salesforce the instant it finishes. When a configuration is set to send-to-review, each run lands in a Pending Review status and waits for a person to sign off — turning the run record into a full review workspace rather than just a log entry. Open the run and you get the extracted result side-by-side with the source document itself, so you can check every value against the page it came from without switching tabs or opening the file separately. The review is organized exactly the way the mapping is. The Details tab holds the main-record fields, and the Related tab holds every child record the run produced — line items, partners, and the like — shown in a grid you can work through row by row. Everything is editable in place: correct a mistyped value, adjust a quantity, or use Add Row to include something the extraction missed. If a run doesn't look right at all, Reject it instead. ![The run review workspace showing a Pending Review run with its extracted line items beside the source invoice](https://media.help.cloudfiles.io/dai-document-mapper-sf/09b3b852.png) When the record is exactly right, Approve & Write to Salesforce commits the parent and all its related records in one step. Not finished in one sitting? Save Progress keeps your edits on the run so you can come back to it later. Nothing reaches Salesforce until you approve — so a human always has the final say, with the document right there to check against. ## One Configuration, Many Ways to Use It Once saved, the same Config ID can be put to work wherever you need it: - List View Button — upload a document and create new records straight from a list view. - Detail Page Button — upload against an existing record to update its fields or add related records. - Flow Action — drop the same configuration into a Salesforce Flow to fold document extraction into larger automation. Because every method shares one Config ID, you build the mapping once and reuse it everywhere. ## Built for Any Team Document Mapper is versatile across industries. Sales teams can spin up Accounts and Opportunities from client documents without manual entry, and operations teams can process contracts, invoices, or onboarding forms in a few clicks — with related records matched and linked automatically along the way. Head to Document AI → Document Mapper → Create New Configuration and see how effortless record creation and updates can be. Try it out today! --- # Workflows (Automation & Bulk Actions) https://help.cloudfiles.io/salesforce/workflow-builder # Workflows Workflows reads documents with AI, compares the results against Salesforce records, branches and loops on your own rules, and writes back as many creates or updates as the outcome calls for — all from one no-code canvas that plugs directly into Salesforce Flow. > Kind: Guide · Updated: Sep 4, 2026 Getting document data into Salesforce is rarely a straight copy. The value on the page has to be pulled out, checked against what's already on the record, and acted on by your own rules — whether that means updating a record, creating a new one, skipping it, or flagging it for a person. A fixed field map can extract and write, but it can't compare and decide, and that's where most real document processes actually live. Workflows handles that whole loop in one place. It reads a document, compares what it finds against your Salesforce records, decides what to do, and writes the result back — with no code and no jumping between tools. You build the process once as an ordered sequence of steps on a visual canvas, each step feeding the next. The result is one process that turns a document into the right records, the way your team would do it by hand. ![The Workflows canvas showing a sequence of colour-coded steps](https://media.help.cloudfiles.io/dai-workflow-builder-sf/01.png) ## Start Every Run the Same Way Every workflow begins from a launch form, where you set up the two things a run reads from: - Documents to read, either a single file or a group of related files to work through together. - Values the logic depends on, such as a date, an amount, or a checkbox. These are also the fields a Salesforce Flow fills in when it launches the workflow, so what you define here is exactly what the Flow supplies. The same screen is where you set the workflow's review policy, which decides whether a run pauses for a person before it writes to Salesforce. ![The Workflows launch form showing document and value inputs for a run](https://media.help.cloudfiles.io/dai-workflow-builder-sf/block-7-1b966b6e.png) ## Read Any Document with AI Once a run starts, the AI reads the document for you, and how it reads depends on what you need. Extract fields pulls a structured set of values you define — a total, a date, a vendor name, or a whole table of line items — and each one comes back with a confidence score, so you always know how sure the AI was. Ask the document puts a plain-language question to the page when you just need a single fact, and Classify sorts a document into labels you choose, so the run can tell an invoice apart from a receipt and treat each one differently. Whatever the AI reads becomes a value the rest of the workflow can build on. ![An Extract Fields step configured with a schema of described fields](https://media.help.cloudfiles.io/dai-workflow-builder-sf/02.png) ## Find and Compare Against Salesforce A value off a document only means something once you can check it against what you already have, so a workflow finds the matching Salesforce record before it acts, and it can match no matter how the data is worded. An exact match works when the document carries a clean identifier. A fuzzy match tolerates the small differences that trip up exact matching — pairing "Acme Corp." on the page with "Acme Corporation" in Salesforce. An AI-picked match lets the model choose the best record when several could fit. Once the record is found, its fields sit alongside the extracted ones, so a later step can weigh the two directly — comparing an amount against the current total, or a name against what's on file. And if nothing matches, that's a real outcome you can act on, not a silent failure. ![A Find Record step configured to match a Salesforce record](https://media.help.cloudfiles.io/dai-workflow-builder-sf/03.png) ## Branch, Loop, and Decide This is the part a fixed field map can't do. A Decision reads what the run has found so far and sends it down the right path — it can update the record when there's a clean match, create a new one when there isn't, or flag it for a person when something looks off. You write the rules once and the run follows them, top to bottom, taking the first that fits. A loop repeats a set of steps for every item in a list, so a document with a dozen line items becomes a dozen linked records in a single pass. Put decisions and loops together and one workflow can handle whatever shape a document arrives in. ![A Decision step routing a run down different paths based on document type](https://media.help.cloudfiles.io/dai-workflow-builder-sf/04.png) ## Write Records Back With the decision made, the run writes. It can create new records, update existing ones, delete, create many at once, or run an autolaunched Flow of your own and pick up what it hands back — and because the decision chose the path, the same workflow can update on one route and create on another. Writes are built to be safe in two ways: a blank value never wipes a field that already has data, and a single run can make several linked writes in order, such as a parent record, its child rows, and a related update, turning one document into a fully connected set of records at once. ![An Update Record step mapping extracted values onto Salesforce object fields](https://media.help.cloudfiles.io/dai-workflow-builder-sf/05.png) ## Keep a Human in the Loop You decide how much oversight each run gets. Let it run straight through with no stops for a process you trust, hold once before the first write so someone can check what the AI read, or pause on every write for records you can't afford to get wrong. When a run pauses, the reviewer sees exactly what's about to be written and either approves it or rejects the run — what they approve is exactly what lands, never edited on the way through. Every pause, approval, and rejection is recorded, so each run keeps a full trail of who signed off on what. ## Test, Publish, and Evolve Safely A workflow saves itself as a draft while you build it, so there's no Save button to remember. Before you publish, a test run lets you try it on a real document and step through exactly what each block read and did, so a wrong extraction or a missed match is caught while it's still cheap to fix. When it's ready you publish a version, and that version is locked — a run already in progress finishes on the version it started on, and nothing changes under it. Improving a workflow later is as simple as publishing again, because every Flow that uses it picks up the new version automatically. ![A workflow run detail screen showing extracted values, confidence scores, decisions, and writes](https://media.help.cloudfiles.io/dai-workflow-builder-sf/06.png) ## Plug Into Your Salesforce Automation Workflows are built and tested inside the CloudFiles app, but they really pay off once they run on their own. A ready-made Flow action, CloudFiles: Run Doc AI Workflow, lets any Salesforce Flow launch a workflow with the documents, field values, and record it needs. It always runs the latest published version, so improving a workflow never means touching the Flows that use it, and it reports back cleanly — your Flow learns whether the run launched (a Success flag), gets an ID to track it by (the Run Id and Run Record Id), and reads a clear reason if it didn't (an Error), so the automation around it always knows what happened. The traffic runs both ways: a Run a Salesforce Flow step inside a workflow calls an active autolaunched Flow in your org, so logic you already built in Flow Builder stays where it is and the workflow hands off to it mid-run. ![The CloudFiles: Run Doc AI Workflow action configured inside a Salesforce Flow](https://media.help.cloudfiles.io/dai-workflow-builder-sf/07.png) Every run launched this way is tracked on its own CloudFiles DocAI Run record inside Salesforce. The record shows the run's status, links back to its full history, and is where a reviewer opens a pending write to approve or reject it — so you can see and act on every run without leaving Salesforce. ## Built for Any Team Workflows fits any process where documents drive records. Finance teams turn invoices into linked headers and line items, operations teams route mixed document types down the right path automatically, and healthcare or compliance teams check a document against the record on file and flag any mismatch. Wherever a document needs to become more than one connected record — checked, matched, and written the way your team would do it by hand — Workflows handles it end to end. Head to Document AI → Workflows → New workflow and build your first process. Try it out today! --- # Actionable AI Outputs https://help.cloudfiles.io/salesforce/actionable-ai-outputs # Actionable AI Outputs CloudFiles AI brings intelligence directly into document management and generation inside Salesforce, organizing, generating, and processing documents automatically with accuracy and consistency. > Kind: Guide · Updated: Jul 4, 2026 ## Introduction CloudFiles AI brings intelligence directly into document management and generation inside Salesforce. Instead of treating documents as static files, CloudFiles uses AI to understand content the moment it enters the system, ensuring documents are organized, generated, and processed automatically with accuracy and consistency. By combining AI-driven document management, generation, and intelligent PDF processing, CloudFiles removes manual effort from every stage of the document lifecycle and enables scalable, reliable document workflows across teams and industries. 1. **AI Driven Document Management** — The AI Driven Doc Management feature intelligently identifies, renames, and routes every file the moment it enters Salesforce. It reads and understands each document’s content, extracts key details, applies clean naming standards, and places files in the correct external folders automatically. This ensures every document is instantly organized, searchable, and stored with complete accuracy, creating a consistent and effortless document management experience across teams and industries. 2. **AI Driven Document Generation** — The AI-Powered Document Generation feature automatically interprets uploaded files and Salesforce records, generates personalized content, and assembles complete documents using templates. It removes manual writing and formatting work, ensuring every document is accurate, consistent, and ready to use with minimal effort. 3. **Intelligent PDF Splitting** — The Intelligent PDF Splitting feature uses AI and OCR to automatically separate merged or multi-page PDFs into individual, organized documents. It identifies boundaries accurately, even in scanned files, and generates clean, searchable outputs with meaningful file names. Each split file is instantly ready for downstream automations in Salesforce, helping teams handle bulk uploads like invoices or contracts with zero manual effort. --- # AI Driven Document Management https://help.cloudfiles.io/salesforce/ai-driven-document-management # AI Driven Document Management This article explores how CloudFiles brings Document Management and Document AI together to simplify the way documents move through Salesforce. > Kind: Guide · Updated: Jul 4, 2026 Document Management and Document AI are each useful on their own, one keeps files organized, while the other brings intelligence. But when they work together, they create a smoother, more reliable document flow. This article explores how CloudFiles brings these capabilities together to simplify the way documents move through Salesforce. Every organization handles a constant flow of documents, contracts, invoices, KYC files, proposals, reports, moving between teams, customers, vendors, and partners. But once these files enter Salesforce, things quickly become chaotic. Documents land on the wrong records, naming conventions break, external collaborators send files through email instead of proper channels, and key information stays hidden inside PDFs. This leads to delays, errors, repeated work, and a heavy manual burden on teams ## Core Components of the CloudFiles Document System CloudFiles brings together these tightly integrated capabilities: - Document Management – Salesforce & External Storage Integration: CloudFiles connects Salesforce with external storage systems like SharePoint, Google Drive, OneDrive, Box, Dropbox, and AWS S3. It maintains consistent folder structures across Salesforce records and external repositories. Documents stay organized, searchable, and accessible without duplicating files in Salesforce. - Document Management Components & Workflow Automation: Native Salesforce components and Flow actions automatically create folders and route documents based on record activity. Folder structures align with business processes such as sales, onboarding, and compliance.Document organization runs automatically, reducing manual effort and errors. - External Document Sharing & Collection: CloudFiles enables secure sharing through sharing links and Data Rooms directly from Salesforce. External users can view, download, and upload files through controlled, trackable access. All shared and collected documents stay connected to Salesforce records with full visibility and governance. - Intelligent Document Processing with Document AI: Document AI classifies documents and extracts key business information from uploads automatically. Extracted data enriches Salesforce records and triggers downstream workflows. Teams can act on document insights immediately, without manual review or data entry. Together, these capabilities create a flexible document framework where documents can be understood, organized, and routed as part of broader Salesforce workflows, without relying on manual handling or rigid, upload-only processes. ## How These Components Work Together The value of combining Document Management and Document AI lies in what it enables. Below are a few representative use cases that organizations commonly solve using CloudFiles. These examples illustrate the possibilities, not the limits. Understands documents the moment they're uploaded: When a user uploads a contract, invoice, ID proof, or even a poorly scanned multi-page PDF, Document AI immediately reads and identifies it. It detects document types accurately even with handwritten, rotated, or low-quality content ensuring that mixed uploads are sorted and understood without any manual effort. Renames files automatically based on their content: Instead of generic names like “scan001.pdf” or “document (5).pdf,” AI extracts meaningful details such as customer names, invoice numbers, dates, or ID types and uses them to generate clean, standardized filenames. This keeps your entire document repository searchable, consistent, and audit-ready without relying on users to rename files. Files documents exactly where they belong: Once classified and renamed, CloudFiles routes each document to the correct external folder automatically. A KYC document is placed under the customer’s compliance directory, an invoice moves to Finance, and a signed agreement is stored neatly under Contracts within the related Opportunity or Account. Users never need to think about folder paths, the system handles structure and placement with perfect consistency. Combines secure document sharing with AI-powered processing: CloudFiles also allows organizations to collect documents from customers, partners, or applicants using secure share links. When external users upload files through these links, Document AI applies the same pipeline, identifying the file type, extracting key details, renaming the document, and filing it in the correct Salesforce-linked folder. Associated records are updated automatically, eliminating the need for teams to manually inspect, sort, or organize incoming documents. > This automation benefits every industry that depends on document i intake. Financial teams process KYC files and statements without manual sorting. Procurement teams keep invoices and vendor certificates automatically organized. Real estate firms collect identity proofs and agreements through the CloudFiles widget and see them immediately classified and stored. Any business handling high document volumes gains instant structure, accuracy, and reliability. ## Summary CloudFiles is not just about managing files or extracting data. It’s about creating a unified document system inside Salesforce, where documents are consistently understood, correctly organized, and ready to support downstream business processes. By bringing Document Management and Document AI together, CloudFiles transforms documents from operational overhead into reliable, intelligent building blocks for scalable workflows. --- # AI Driven Document Generation https://help.cloudfiles.io/salesforce/ai-driven-document-generation # AI Driven Document Generation Document Generation and Document AI together form an end-to-end content engine that turns raw documents and record data into ready-to-send quotes, proposals, invitations, and onboarding packs. > Kind: Guide · Updated: Jul 4, 2026 Document Genaration and Document AI each solve major gaps in Salesforce, one automates document creation, the other understands incoming documents to generate structured data and draft intelligent content. Together, they create a powerful, end-to-end content engine that turns raw documents and record data into ready-to-send quotes, proposals, invitations, and onboarding packs. This article explores how CloudFiles unifies these capabilities to eliminate manual writing, copying, and formatting. Every organization relies heavily on documents, emails, proposals, quotes, invitations, onboarding kits, contracts, constantly moving between teams, customers, vendors, and partners. But creating these documents inside Salesforce is still a manual, disconnected process. Teams copy-paste data from records, rewrite similar messages repeatedly, dig through PDFs to extract details, and assemble templates by hand. This leads to slow turnaround times, inconsistent communication, and a heavy operational burden on teams. ## Core Components of the CloudFiles Document System CloudFiles fixes this problem at the source. CloudFiles brings together these tightly integrated capabilities: - Document Generation: CloudFiles enables automated document generation directly from Salesforce data using reusable templates. Documents like quotes, proposals, contracts, and letters are generated instantly with accurate, up-to-date record information. This eliminates manual copy-paste and ensures consistent, professional output every time. - Intelligent Document Understanding: Document AI extracts key business information from documents with accuracy. Beyond extraction, it understands context to classify files and generate summaries, insights, and draft write-ups from document content. This enables teams to move faster by turning documents into structured data and usable content inside Salesforce. Together, these features create a fully automated content pipeline that can start whenever you choose, on record updates, file uploads, stage changes, or any custom trigger. ## How These Components Work Together The value of combining Document Generation and Document AI lies in how content is created, understood, and automated end to end. Below are a few representative use cases that organizations commonly solve using CloudFiles. These examples illustrate the possibilities, not the limits. ### Generate customer-ready quotes from uploaded vendor documents: When teams receive supplier price sheets, SOWs, or contract PDFs, Document AI extracts item details, pricing, quantities, and validity terms. Doc Gen then merges this extracted data into a standardized quote or proposal template, producing a polished, customer-facing document without manual rewriting or copying. ### Create personalized invitations and communication packs instantly: Document AI reads uploaded briefs, event PDFs, or reference documents to extract key details such as agenda, location, deadlines, and speaker information. AI Compose transforms this into a tailored message, and Doc Gen assembles it into a branded invitation or outreach PDF that can be sent directly to Leads or Contacts. ### Build onboarding or compliance packs from KYC and contract files: When users upload KYC files, agreements, or compliance documents, Document AI identifies and extracts customer details, ID types, dates, and conditions. Doc Gen uses this structured data to automatically generate onboarding kits, welcome documents, and compliance summaries, ensuring accuracy and format consistency. ### Produce structured summaries and reports from uploaded documents: Teams often receive multi-page requirement docs, financial statements, or project briefs. Document AI captures the important sections, numbers, and instructions. Doc Gen then compiles these into organized project summaries, requirement briefs, or internal reports, reducing hours of manual summarization and formatting. > This automation benefits every team that repeatedly creates customer-facing documents. Sales teams produce quotes and proposals instantly. Event teams generate personalized invitations in bulk. Support and onboarding teams assemble customer packs based on extracted KYC or contract information. Any business that relies on recurring communication gains speed, accuracy, personalization, and consistency. ## Summary CloudFiles automates document creation in Salesforce by using AI to understand records and uploaded files, generate personalized content, and assemble complete documents through Doc Gen templates. This eliminates manual writing, copying, and formatting, helping teams create accurate, professional, and fully-personalized documents effortlessly. --- # Intelligent PDF Splitting https://help.cloudfiles.io/salesforce/intelligent-pdf-splitting # Intelligent PDF Splitting The CloudFiles: Split Document Using AI flow action automatically analyzes and splits merged PDF files using AI and OCR, detecting document boundaries and producing cleanly structured, searchable, auto-named output files. > Kind: Guide · Updated: Jul 4, 2026 When organizations receive documents in bulk, like invoice bundles, scanned contracts, or multi-page application forms, they’re often merged into a single, lengthy PDF. Manually identifying where one document ends and another begins is time-consuming, error-prone, and inconsistent across teams. This becomes even more challenging when dealing with scanned or image-based files that aren’t searchable. The CloudFiles: Split Document Using AI flow action solves this challenge by automatically analyzing and splitting merged PDF files stored in Salesforce or external cloud storage. Using advanced AI and OCR (Optical Character Recognition), the system scans the content of the file to intelligently detect where each new document begins, whether that’s the start of a new invoice, a contract section, or an application form and then separates the file into cleanly structured individual documents. This feature uses AI-based content boundary detection to identify exactly where each document begins and ends, ensuring accurate and logical splits even in large, complex PDFs. It also performs OCR to convert scanned or image-based pages into fully searchable documents, improving accessibility and indexing. Once the processing is complete, the system automatically: - Publishes a document-split event that includes metadata for each split file, enabling real-time automation and seamless integration with Salesforce flows or downstream processes. - Uploads a searchable OCR-enhanced version of the original merged PDF for easier retrieval and indexing. - Auto-names each split file using AI, leveraging content such as invoice numbers, vendor names, or reference IDs to generate meaningful file names. Together, these steps ensure every output file is organized, searchable, and ready for use with zero manual effort. ![](https://media.help.cloudfiles.io/dai-intelligent-pdf-splitting-sf/01.png) > You can experience this firsthand through the Split Salesforce Files using AI testdrive, which lets you try the feature in real-time and see how effortlessly the process works. Various industries benefit from Intelligent PDF Splitting, as it helps automate the handling of bulk, merged, or scanned documents. For example, finance teams can automatically split and name large bundles of invoices for faster reconciliation, while legal teams can separate merged contract PDFs into individual agreements for smoother compliance and review workflows. > **Optional Enhancements** — For documents with very specific structures, you can guide the AI with simple instructions to improve precision. For example: “Each invoice starts with ‘Invoice Number’ and ends with ‘Subtotal.’ Split at each occurrence.” These hints help the system adapt to custom formats and deliver even more accurate results. Together, these capabilities make Intelligent PDF Splitting a powerful tool for any organization dealing with high volumes of merged or scanned documents. By combining AI-driven boundary detection, automatic OCR enhancement, and event-based automation, it transforms document-heavy workflows into streamlined, error-free processes. Teams save time, improve accuracy, and maintain cleaner, more searchable document repositories across Salesforce and external storage platforms. Try it out now using the Split External Files using AI Test Drive and experience hands-free document processing powered by CloudFiles. --- # Document AI Tutorials https://help.cloudfiles.io/salesforce/document-ai-tutorials # Document AI Tutorials This tutorial series walks through the core capabilities of Document AI, including configuring initial flows, processing files, extracting and mapping data to Salesforce object fields, and integrating into automation workflows. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview Welcome to the Document AI Tutorials category. This tutorial series walks you through the core capabilities of Document AI, including how to configure and set up initial flows, process files, extract and map data to Salesforce object fields, and seamless integration into your automation workflows. Browse through the list below to get started - - AI Flows - Initial Setup Guide - This guide explains how to set up Salesforce flows to process files using CloudFiles Document AI, which is a necessary first step before running AI queries. It covers how to process documents from both Salesforce and external storage, each with slightly different methods, in order to generate a processed document ID required for querying. - Batching AI Queries - In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to create a KYC upload checker. While this is similar in functionality to KYC Upload Checker, instead of performing multiple Query Document calls, we will perform a single call for multiple actions using the Query Document (Batch) action. - Classify and Rename Uploaded Files - In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to classify incoming documents and rename them appropriately. - Document Mapper Tutorial This tutorial explains how to use CloudFiles Document Mapper with Salesforce List View Buttons to automate processing of structured business documents. It extracts key information from uploaded files and creates the corresponding Salesforce records, including related Line Items, without manual data entry. - Document Checklist - In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to classify incoming documents and update the checklist appropriately. - Get CSV text Output from AI Query - In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to extract multiple data fields from uploaded documents in CSV format using a single query. - Get JSON Output from AI Query - In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to extract data from documents in a structured JSON format. - KYC Upload Checker - In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to create a KYC upload checker. - Line Item Extraction - This article explains how to use CloudFiles with Salesforce Flow to automate data extraction from uploaded documents. It covers how files are processed using CloudFiles Document AI, how Natural Language Queries extract key information (such as order line items), and how the extracted data is further handled within the flow. - Mass property extraction from a Medical Form - In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to extract multiple properties from documents using custom metadata. - Signature Checking - This article demonstrates how to automate signature detection using CloudFiles and Salesforce Flow. When a file is uploaded to Salesforce or external storage, CloudFiles Document AI processes it, a Natural Language Query checks for a signature, and the corresponding Salesforce record is updated based on the result. - Simple Data Extraction from KYC Files - This tutorial provides step-by-step guidance on configuring Salesforce Flow Automations using CloudFiles Document AI Flow Actions. It focuses on processing Salesforce files that are uploaded or attached to object records, extracting information from those files using AI, and automating the update of Salesforce object fields based on the extracted data. - Splitting multiple combined POs into child objects - In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to split multiple combined documents from an uploaded Salesforce file. ## Beyond this Tutorial This tutorial demonstrated a foundational example of processing files from connected External Storage. You can adapt the same logic to address numerous enterprise use cases, including: - File Metadata Management: Automatically tagging and categorizing files based on type, content, or extracted information, updating relevant metadata columns accordingly. - Automated File Routing: Moving files automatically between storage locations or triggering approval tasks based on file type, contents, or extracted insights. - Order Processing: Extracting data from uploaded Purchase Orders, updating corresponding Order records, or automatically creating Order Line Items. - Invoice Automation: Capturing essential details from invoices uploaded into Opportunity folders, updating related Salesforce fields, or initiating payment-related workflows. - HR Onboarding Automation: Extracting key employee details from onboarding documents uploaded into employee-specific folders, automating record creation, and data updates. - Compliance Automation: Automatically processing compliance-related documents (e.g., certifications) uploaded into Account folders, and instantly updating compliance status. - Insurance Claim Automation: Parsing claim documents uploaded to Case records, extracting essential data, and updating claim statuses and details automatically. Exploring these use cases along with Document AI can greatly streamline your Document Management & Sharing and enhance data accuracy, significantly boosting your organization's productivity. --- # AI Flows - Initial Setup Guide https://help.cloudfiles.io/salesforce/ai-flows-initial-setup-guide # AI Flows - Initial Setup Guide This guide provides a detailed overview of setting up Salesforce flows to process files using CloudFiles Document AI as a pre-cursor to querying results from AI. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview This guide provides a detailed overview of setting up Salesforce flows to process files using CloudFiles Document AI. This setup is to be used as a pre-cursor to perform actual querying to get results from AI. In order to ask a natural language query to CloudFiles AI, you first need to process the document and receive a processed document ID. The file to be processed can be either a Salesforce upload or it may be uploaded in external storages. CloudFiles provides functionlity to process both types of uploads, albeit in a slightly different manner. Read the sections below carefully. ## Pre-requisites Ensure the following before starting: - CloudFiles Installed in Salesforce: Available on Salesforce AppExchange.Check out Installation and Configuration and to know more. - Active Subscription or Trial: Ensure access to CloudFiles Document AI ## Processing Files using CloudFiles Document AI In order to query your files using AI, we first need to process the document. This prepares the document so that it can be sent to AI for querying. You will need to create 2 separate flows. The first flow will trigger when the upload is done and will send the uploaded file to AI for processing. The second flow will trigger when the document has finished processing and can now be queried. - Process New Document Flow - This flow sends any new file uploads for processing. Processing is an asynchronous operation and may take some time to complete. - Document Processing Complete Flow - This flow executes when the document has been processed. This is the flow in which you will actually add the query & response logic. To create these flows, first decide if you want to process a Salesforce file upload or an external storage file upload. Based on this, refer to one of the below articles in order to setup the flows. For Salesforce File Uploads - If you are uploading files into the Salesforce Files or Notes & Attachments section, refer to Process Salesforce Files article in order to setup the initial flows. For External Storage Uploads - If you are uploading files into external storages such as SharePoint or Google Drive, refer to Process External Files article in order to setup the initial flows. Once you are finished with the relevant article, you should have the below two flows ready in your org. Here's a screenshot of how these flows will look like. Check the next section on how to use these flows further in order to get responses from AI. When a new Salesforce File is uploaded or attached onto the records- ![](https://media.help.cloudfiles.io/tut-ai-flows-initial-setup-guide-sf/01.png) When a new file is uploaded in an external storage through the CloudFiles LWC- ![](https://media.help.cloudfiles.io/tut-ai-flows-initial-setup-guide-sf/02.png) > First decide whether you want to work with Salesforce Files or External files and based on that, use either the Process Salesforce Files or the Process External Files article in order to setup the 2 flows. ## Querying the document using AI Once you have the above flows setup, you are ready to start querying the document and getting responses. This is done using the 'Query Document' flow action. In order to see how this action can be used to achieve specific goals, refer to our detailed tutorials listed in the Document AI Tutorials article. > This tutorial only helps setup the initial flows to make the document ready for AI. In order to actually use AI to get responses, checkout other tutorials. ![](https://media.help.cloudfiles.io/tut-ai-flows-initial-setup-guide-sf/03.png) --- # Process Salesforce Files https://help.cloudfiles.io/salesforce/process-salesforce-files # Process Salesforce Files A guide to processing Salesforce Files for Document AI by setting up two flows: one to send newly uploaded files for processing, and one to handle completed processing so AI queries can be run. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will guide you on how to process Salesforce Files for Document AI. Processing the files is a mandatory step that must be done before AI queries can be executed on a file. Processing makes the file ready for CloudFiles AI. You will need to create 2 separate flows. The first flow will trigger when the upload is done and will send the uploaded file to AI for processing. The second flow will trigger when the document has finished processing and can now be queried. - Process New Document Flow - This flow sends any new file uploads for processing. Processing is an asynchronous operation and may take some time to complete. - Document Processing Complete Flow - This flow executes when the document has been processed. This is the flow in which you will actually add the query & response logic. Read the sections below carefully to setup these 2 flows. ## Pre-requisites Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-process-salesforce-files-sf/01.png) ## Process New Document Flow This flow is triggered whenever a new Salesforce File is uploaded or attached (identified by the Salesforce File Attached event) onto the records. It processes each attached file using Process Document using AI in the context of the triggering record. Successful file processing publishes a Document Processed event, triggering the Document Processing Complete Flow that is covered in the next section. Check the sub-sections below for details on each of these steps. ![](https://media.help.cloudfiles.io/tut-process-salesforce-files-sf/02.png) ### Create Record Triggered Flow Create a new record-triggered flow with the triggering object type set as cldfs__CloudFilesEvent__c. Additionally set some filter conditions. This ensures that the flow is only triggered for the correct type of events. E.g. using the below conditions, we will only trigger the flow when a new file is uploaded on contact records - - Type ( cldfs__Type__c ) = salesforce-file-attached Include a Run Asynchronously path to access an external system after the original transaction for the triggering record is successfully committed. Here's how the trigger conditions would look like. ![](https://media.help.cloudfiles.io/tut-process-salesforce-files-sf/03.png) ### Get Event Details Now that we have trigger setup, we will get more details related to the event. We will use the Get Event Details action for this. Within In the Run Asynchronously path, add the Get Event Details action. Under "Set Input Values", toggle Event (Custom Object) and select Triggering cldfs__CloudFilesEvent__c ( {!$Record} ). ![](https://media.help.cloudfiles.io/tut-process-salesforce-files-sf/04.png) ### Loop through attached files Since there might be multiple files attached, we will loop through all files and process each one seperately. For this we use a loop element and choose the collection variable from the output of Get Event Details : {!Get_Triggering_Event_Details.SalesforceFiles.ContentDocumentIds} ![](https://media.help.cloudfiles.io/tut-process-salesforce-files-sf/05.png) ### Process Each File In order to actually process the file, we simply use the Process Document flow action as shown below. This action takes in the following parameters : - File Id: select Current Item from Loop ( {!For_Every_Attached_Content_Document} ). - Library: type salesforce. - Context: select Outputs from Get Event Details > Salesforce Files Details > ParentId ( {!Get_Triggering_Event_Details.SalesforceFiles.ParentId} ). - Optionally, set Instructions with special processing guidelines. ![](https://media.help.cloudfiles.io/tut-process-salesforce-files-sf/06.png) ## Document Processing Complete Flow This flow is triggered when the document we sent for processing in the flow above has finished processing. We will use the Document Processed event along with a record triggered flow to intercept this. We will then get the event details that will give us the triggering record and the processed document ID that can be used later to perform AI queries on the document. ![](https://media.help.cloudfiles.io/tut-process-salesforce-files-sf/07.png) ### Create Record Triggered Flow Create a new record-triggered flow with the triggering object type set as cldfs__CloudFilesEvent__c. Additionally set some filter conditions. This ensures that the flow is only triggered for the correct type of events. E.g. using the below conditions, we will only trigger the flow when a new file is uploaded on contact records - - Type ( cldfs__Type__c ) = document-processed Include a Run Asynchronously path to access an external system after the original transaction for the triggering record is successfully committed. Here's how the trigger conditions would look like. ![](https://media.help.cloudfiles.io/tut-process-salesforce-files-sf/08.png) ### Get Event Details Now that we have trigger setup, we will get more details related to the event. We will use the Get Event Details action for this. Within In the Run Asynchronously path, add the Get Event Details action. Under "Set Input Values", toggle Event (Custom Object) and select Triggering cldfs__CloudFilesEvent__c ( {!$Record} ). ![](https://media.help.cloudfiles.io/tut-process-salesforce-files-sf/09.png) ### Useful Event Information Now that we have the event details of the document-processed event, we can use this to get 2 useful pieces of information - - Processed Document ID - This will be used as an input to the Query Document Action that has used in various other tutorials on Document AI Tutorials. - Context - This is important to retrieve the record ID or other important metadata that you want to pass when processing the document. Check the Process Each File Section above to understand what is retrieved in the context output. - File - Details of the processed file specified in the input, which helps identify the file post processing. ![](https://media.help.cloudfiles.io/tut-process-salesforce-files-sf/10.png) ## What Next? In this tutorial, we have only explained how to process a Salesforce file so that it is ready for AI queries. For actually understanding how automated queries can be performed and how the responses can be used to enrich Salesforce data, check the other tutorials mentioned in the Document AI Tutorials article. --- # Process External Files https://help.cloudfiles.io/salesforce/process-external-files # Process External Files This guide provides a detailed overview of setting up Salesforce flows to process files using CloudFiles Document AI. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview This guide provides a detailed overview of setting up Salesforce flows to process files using CloudFiles Document AI. This setup is to be used as a pre-cursor to perform actual querying to get results from AI. In order to ask a natural language query to CloudFiles AI, you first need to process the document and receive a processed document ID. The file to be processed can be either a Salesforce upload or it may be uploaded in external storages. CloudFiles provides functionlity to process both types of uploads, albeit in a slightly different manner. Read the sections below carefully. ## Pre-requisites Ensure the following before starting: - CloudFiles Installed in Salesforce: Available on Salesforce AppExchange.Check out Installation and Configuration and to know more. - Active Subscription or Trial: Ensure access to CloudFiles Document AI ## Processing Files using CloudFiles Document AI In order to query your files using AI, we first need to process the document. This prepares the document so that it can be sent to AI for querying. You will need to create 2 separate flows. The first flow will trigger when the upload is done and will send the uploaded file to AI for processing. The second flow will trigger when the document has finished processing and can now be queried. - Process New Document Flow - This flow sends any new file uploads for processing. Processing is an asynchronous operation and may take some time to complete. - Document Processing Complete Flow - This flow executes when the document has been processed. This is the flow in which you will actually add the query & response logic. To create these flows, first decide if you want to process a Salesforce file upload or an external storage file upload. Based on this, refer to one of the below articles in order to setup the flows. For Salesforce File Uploads - If you are uploading files into the Salesforce Files or Notes & Attachments section, refer to Process Salesforce Files article in order to setup the initial flows. For External Storage Uploads - If you are uploading files into external storages such as SharePoint or Google Drive, refer to Process External Files article in order to setup the initial flows. Once you are finished with the relevant article, you should have the below two flows ready in your org. Here's a screenshot of how these flows will look like. Check the next section on how to use these flows further in order to get responses from AI. When a new Salesforce File is uploaded or attached onto the records- ![](https://media.help.cloudfiles.io/tut-process-external-files-sf/01.png) When a new file is uploaded in an external storage through the CloudFiles LWC- ![](https://media.help.cloudfiles.io/tut-process-external-files-sf/02.png) > First decide whether you want to work with Salesforce Files or External files and based on that, use either the Process Salesforce Files or the Process External Files article in order to setup the 2 flows. ## Querying the document using AI Once you have the above flows setup, you are ready to start querying the document and getting responses. This is done using the 'Query Document' flow action. In order to see how this action can be used to achieve specific goals, refer to our detailed tutorials listed in the Document AI Tutorials article. > This tutorial only helps setup the initial flows to make the document ready for AI. In order to actually use AI to get responses, checkout other tutorials. ![](https://media.help.cloudfiles.io/tut-process-external-files-sf/03.png) --- # Batching AI Queries https://help.cloudfiles.io/salesforce/batching-ai-queries # Batching AI Queries A tutorial on using CloudFiles Document AI with Salesforce flow automations to build a KYC upload checker that runs multiple natural language queries in a single batched call. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to create a KYC upload checker. While this tutorial is similar in functionality to KYC Upload Checker, instead of performing multiple Query Document/Dataset calls, we will perform a single call for multiple actions using the Query Document/Dataset (Batch) action. Each time a file is uploaded into Salesforce or external storage, the following actions will occur : - The file will be processed using CloudFiles Document AI. - Natural Language Queries will execute to classify the file and extract key details. - Corresponsing fields will be updated in Salesforce. > Since we have multiple queries to run, we will use the Query Document/Dataset (Batch) action in this tutorial. To configure this tutorial using the Query Document/Dataset action instead, refer to the article on KYC Upload Checker. In order to setup this automation, you first need to have some pre-requisites. After this you can start setting up some query automations and updates to achieve your use-case. Check the sections below for more information. In the image below, we have demonstrated this in action. ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/01.gif) ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/02.png) ### Initial Automation Setup There are 2 flows you will need to setup to process the uploaded files. The first flow is triggered when the document is uploaded into Salesforce or external storage. This flow sends the file to AI for processing. This might take a few seconds. Once the AI is done with processing, the second flow will trigger which will contain the processed document. You can then run queries on this processed document. - Flow 1: Send Document For Processing - Triggered when file is uploaded into Salesforce or external storage. Sends the file for processing which may take a few seconds to a minute. - Flow 2: Document Processing Complete - Triggered when the file has been processed by AI. Performs queries on the file to extract the data. Once your flow setup is complete, your flows should look like the following- ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/03.png) > Read the article on AI Flows - Initial Setup Guide carefully to setup both the flows. Once your initial flows are setup as shown above, you are ready to move to the next step. ## Query Automation Setup Now that you have the initial automation setup, we can take the document processed flow and extend it to query the document and update the required fields. In this section, we show how to query the processed document, check the results and perform the necessary updates. ### Classifying the document In order to classify the document, we will simply use the Query Document/Dataset flow action along with a natural language prompt. This action taken in a processed document ID and a text query as input. The processed document ID is available as output of the Get Event Details action. Here are the full inputs used in the image below. > In this section we have used the Query Document action since we had a singular classification query to execute. In the next section, we will use the Query Document (Batch) action to perform multiple data extractions with a single call. Processed Document Id = Outputs from Get Event Details : Get Processed Event Details > Document Processed > ProcessedDocumentId Query = Classify the file as either a driving license or a passport. If the file does not match either of these types, classify it as other. Based on the classification, give the output as one of the following - Driving License, Passport, or Other. ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/04.png) Now that our documents are classified, we can use the output of the 'Query Document' action to create 2 branches in our flow. In each of the branches, we will ask document specific questions to extract relevant information. We will use the Query Document/Dataset (Batch) action to perform all queries in a single call. ### Create Query Variables In order to batch queries, first create an apex-defined variable of class cldfs__QueryDocumentPrompt for each of the queries you need to run. This means you will need to create multiple such variables. Here is an example of one such variable. ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/05.png) Now using an assignment flow action, assign the 'id' & 'query' fields to your created variable as shown below. Here id is a text identifier that we will use later while looping over the batched results. Query is the natural language prompt you wish to ask AI. ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/06.png) Repeat this for the queries you need to run. As you can see below, we have created and assigned multiple such variables, each with a different id & query. Here are some example queries we used : - Return the Given Name of the Passport Holder - Return the Passport Issue Date in YYYY-MM-DD Format - Return the Passport Number ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/07.png) > The effectiveness of the CloudFiles: Query Document action heavily depends on the quality of the query or input prompt.Tips for crafting effective prompts:Be Specific: Avoid vague prompts like "Return Expiry Date of the Passport". Instead, use a more detailed query like: "Return the Expiry Date of the Passport in the format DD/MM/YYYY."Define a return format statement as well which should cover all the expected outcomes in order to avoid garbage values and unprecedented results.Test and Refine: You can test the quality of your queries and verify if they yield the desired results by using the Playground feature in the CloudFiles app.Testing Queries in the Playground:Navigate to CloudFiles App > Document AI > Playground.Upload a sample file.Use the interactive Query side-component to experiment with different prompts against the file.This iterative process helps you fine-tune your queries for optimal results before implementing them in your workflows. This iterative process helps you fine-tune your queries for optimal results before implementing them in your workflows. ### Create Query Collection Now that you have constructed the variables, we will combine them into an apex-defined collection variable of class cldfs_QueryDocumentPrompt. The creation of this collection variable has been shown in the image below- ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/09.png) Once created, you can simply use an assignment operator to add the above variables into this collection. This has been shown below- ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/10.png) ### Execute Queries in Batch The previous consolidates all constructed queries into a single collection, preparing them for batch execution using Query Document/Dataset (Batch). In this step, we will actually use this action along with the collection variable from previous step to execute these queries. This action takes in 2 inputs - - Processed Document Id: Select Triggering cldfs__CloudFilesEvent__c {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} - Prompts: Select QueryCollection_Passport (the previously created query collection) The final action with the inputs is shown below - ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/11.png) This step executes all data extraction queries simultaneously, optimizing performance and ensuring efficient processing. ### Loop & Filter the Results The batch action above provides the results in a batched manner as well. We need to loop through these results in order to update them in our Salesforce record. We further need to filter the results into branches in order to update them in the correct salesforce properties. This step allows the flow to individually handle each query result, thus giving more control. The image below shows how the loop has been setup. Set the Collection Variable to Outputs from Execute Passport Queries > Prompts. ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/12.png) Once you have setup the loop, you can check the loop item's 'id' field in order to create the branches. These are the same IDs that we provided above while creating the Query variables. The image below shows an example branch- ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/13.png) ### Update Salesforce fields Now that we have branches created to handle the response of each of the individual queries sent, we can easily update our record fields. While we can simply add the Update record action into these branches, this will trigger multiple record updates for the same record in a short time. Since it is a good practice to perform less number of record update calls, we will use a simple trick. We will create some empty text variables for each of the responses, and store the result from the response array into these variables. You can simply create a text variable assign the looped item's 'result' as shown in the screenshot below- ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/14.png) > CloudFiles Document AI query results are always returned as plain text. To assign these text results to Salesforce fields of types other than Text, you must utilize Salesforce Flow’s native logic and formula elements to convert the values appropriately. For example, the DATEVALUE formula converts text into a Date type field, ensuring compatibility and correct field assignment. Now that we have various variables for our responses, we can use a singular Update Record method to update the fields with these values. This has been shown below- ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/15.png) That's it. Your flow is now configured to run multiple queries in a batch and save the responses in record fields. ## See it in Action Now that everything is set up, you can test your flows. When a Passport or Driver's License is uploaded as Salesforce Files onto a Contact record, the mapped fields should be updated automatically. > **Note** — Note: As Flow Automation executions and document processing via AI may take a short time, the field updates will not reflect immediately. To view the updates, wait briefly and refresh the page. ![](https://media.help.cloudfiles.io/tut-batching-ai-queries-sf/16.gif) Congratulations! You've successfully created an AI-powered KYC Documents checker using CloudFiles AI & Salesforce flow. ## Beyond this Tutorial While this tutorial provides a simple and specific use case for processing Salesforce Files, the same logic can be extended to various scenarios such as: - Order Management: Automatically extracting details from Purchase Orders uploaded to Order records and updating related fields or creating Order Line Items. - Invoice Processing: Extracting invoice details uploaded on Opportunities and updating relevant fields or creating related payment records. - HR Onboarding: Automatically extracting and populating data from employee documents uploaded to custom Employee records. - Compliance Management: Processing compliance-related documentation (e.g., certifications) uploaded to Account records, updating compliance status automatically. - Insurance Claims: Extracting data from insurance claim documents uploaded to Case records and automatically updating claim status and related details. Explore these use cases to streamline your document management and Salesforce data updates, enhancing your organization's efficiency and accuracy. --- # Classify and Rename Uploaded Files https://help.cloudfiles.io/salesforce/classify-and-rename-uploaded-files # Classify and Rename Uploaded Files Learn how to use CloudFiles Document AI with Salesforce flow automations to classify incoming documents (Passport or Driving License) and automatically rename them with the appropriate prefix. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to classify incoming docs and rename them appropriately. Each time a file is uploaded into Salesforce or external storage, the following actions will occur: - The file is processed using CloudFiles Document AI. - A Natural Language Query executes to classify the file as Passport or Driving License. - File is automatically renamed with a prefix based on the classification. In order to setup this automation, you first need to have some pre-requisites. After this you can start setting up some query automations and updates to achieve your use-case. Check the sections below for more information. ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-classify-and-rename-uploaded-files-sf/01.png) ### Initial Automation Setup There are 2 flows you will need to setup to process the uploaded files. The first flow is triggered when the document is uploaded into Salesforce or external storage. This flow sends the file to AI for processing. This might take a few seconds. Once the AI is done with processing, the second flow will trigger which will contain the processed document. You can then run queries on this processed document. - Flow 1: Send Document For Processing - Triggered when file is uploaded into Salesforce or external storage. Sends the file for processing which may take a few seconds to a minute. - Flow 2: Document Processing Complete - Triggered when the file has been processed by AI. Performs queries on the file to extract the data. > Read the article on AI Flows - Initial Setup Guide carefully to setup both the flows. Once your initial flows are setup as shown above, you are ready to move to the next step. Once your flow setup is complete, your flows should look like the following. ![](https://media.help.cloudfiles.io/tut-classify-and-rename-uploaded-files-sf/02.png) ## Query Automation Setup Now that you have the initial automation setup, we can take the document processed flow and extend it to query the document and update the required fields. In this section, we show how to query the processed document, check the results and perform the necessary updates. ### Querying the document In order to query the document, we will simply use the Query Document/Dataset flow action. This action taken in a processed document ID and a text query as input. The processed document ID is available as output of the Get Event Details action. Here are the full inputs used in the image below. Processed Document Id : ( {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} ) Query = Enter a clear Natural Language Classification Prompt such as:What type of File is this ? If this is a Passport Return "Passport", If this is a Driver's License Return "DL", If anything else Return "NA". ![](https://media.help.cloudfiles.io/tut-classify-and-rename-uploaded-files-sf/03.png) ### Checking the answers The Query document action above outputs a text variable which is the full response of AI for the given query. You can use this text response along with flow branching logics to perform complex things. Below, we have used the response from AI to create 2 separate branches which we will use in the next step. ![](https://media.help.cloudfiles.io/tut-classify-and-rename-uploaded-files-sf/04.png) This step ensures the flow accurately identifies the type of document processed, allowing appropriate subsequent record updating actions. ### Create File Name Formula Now that we have the AI categorization and the file name, we will create a simple formula to concatenate the two together and create the final desired file name. Shown below is a text resource variable where this formula has been used. The file name is available as an output of the Get Event Details action : Get_Triggering_Event_Details > DocumentProcessed > File > name. ![](https://media.help.cloudfiles.io/tut-classify-and-rename-uploaded-files-sf/05.png) ### Updating File Name Now that our flow knows which document is which type, we are simply going to append it's name with the AI output and and then update the file. Based on whether your file was uploaded in Salesforce or in external storage, we will use one of the following approaches to update the file name - - For Salesforce Files - Simply update the Content Document Title using Update Records Action. - For External Files - Use CloudFiles' Update Resource flow action to update external file name Refer to the sections below based on your use-case. ### For Salesforce Files Here we will use the Salesforce Update Records action to update the title of the uploaded content document. The ID of the content document to be updated is provided in the output of Get Event Details : Get_Triggering_Event_Details > DocumentProcessed > File > id. The corresponding action is shown below. ![](https://media.help.cloudfiles.io/tut-classify-and-rename-uploaded-files-sf/06.png) ### For External Files We will use the CloudFiles' Set Resource Property flow action to update the external file's name. In order to use this action, we first need a create an Apex-Defined variable of the class cldfs_Resource. ![](https://media.help.cloudfiles.io/tut-classify-and-rename-uploaded-files-sf/07.png) We need to assign some values to this variable using an Assignment action. These values help identify the location of the file in the external library. These may include the id, driveID, library & type of the resource. These values are available as outputs of the Get Event Details action. - Var_Resource > driveId = Get Triggering Event Details > Document Processed > File > driveId - Var_Resource > id = Get Triggering Event Details > Document Processed > File > id - Var_Resource > library = Get Triggering Event Details > Document Processed > File > library - Var_Resource > type = Get Triggering Event Details > Document Processed > File > type ![](https://media.help.cloudfiles.io/tut-classify-and-rename-uploaded-files-sf/08.png) Finally, we use this variable in the Set Resource Property action along with the desired file name to make the update. We need to provide the resource as an input and define a property value pair. Use 'name' as Property name and the formula we created above for the proeprty value. This is shown below. ![](https://media.help.cloudfiles.io/tut-classify-and-rename-uploaded-files-sf/09.png) > When Updating a Resource's 'Name' Column/Property with Set Resource PropertyTo update the 'Name' column of a SharePoint Resource (File or Folder), you need to follow a special configuration:Separate action for 'Name'You must create a separate Set Resource Property action for updating the 'Name' column.Only the 'Name' column can be updated within this action.No other columns (properties) can be updated in the same action when modifying the 'Name' column.Updating 'Name' and other columnsIf you need to update both the 'Name' column and other columns simultaneously, you must use two separate actions:One action should be dedicated solely to updating the 'Name' column.A second action should update all other columns. ## See it in Action Now that everything is set up, you can test your flows. When a Passport or Driver's License is uploaded as Salesforce Files onto a Contact record, the corresponding Salesforce File should be renamed automatically. > **Note** — Note: As Flow Automation executions and document processing via AI may take a short time, the field updates will not reflect immediately. To view the updates, wait briefly and refresh the page. > **Flow 2 Debug** — Whenever a file is processed using the Process Document using AI action, a Document Processed object record is published.You can query these event object records to verify successful file processing and debug the flow.Example SOQL Query:To check Document Processed events sorted by the most recent:SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESCYou can check the Context and File Details in the Data Field of the record.When a flow runs in debug mode and executes Query Document/Dataset action, you can check the results and modify the queries if required. --- # Document Mapper Tutorial https://help.cloudfiles.io/salesforce/document-mapper-tutorial # Document Mapper Tutorial Learn how to use CloudFiles Document Mapper, a no-code feature that integrates with Salesforce List View Buttons to automatically process business documents and create corresponding Salesforce records. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, you’ll learn how to use CloudFiles Document Mapper, a powerful no-code feature that integrates seamlessly with Salesforce List View Buttons to automate the processing of business documents—such as Purchase Orders, Invoices, Quotes, and other structured files. Document Mapper analyzes the uploaded document, extracts key information, and automatically creates the corresponding Salesforce records, including any related child records like Line Items, based on the configuration you define. This enables you to convert structured documents into clean, accurate Salesforce data with minimal setup and no manual data entry. With this setup, CloudFiles will: - Automatically detect the Document Type (PO, invoice, quote, etc.) - Extract important fields such as Document Number, Document Date, Total Amount, Company Name, and Document Description - Identify and parse Line Items (if present) and create corresponding child Line Item records associated with the parent Business Document Before configuring this automation, ensure that the required prerequisites are completed. Once ready, you can begin building your query automations and update rules to fit your specific use case. Refer to the sections below for detailed guidance. The image below provides a visual overview of how the Document Mapper process works: ![](https://media.help.cloudfiles.io/tut-document-mapper-tutorial-sf/01.png) ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-document-mapper-tutorial-sf/02.png) ### Create a Document Mapper Configuration Navigate to CloudFiles App → Document AI → Document Mapper, then click Create New Configuration to start setting up your document mapping. Start by selecting the Salesforce Object you want to map documents to, such as an Account, Opportunity, or any Custom Object. ![](https://media.help.cloudfiles.io/tut-document-mapper-tutorial-sf/03.png) Once the object is selected and saved, you can define the fields and provide AI prompts that instruct CloudFiles on what information should be extracted from the uploaded documents. ![](https://media.help.cloudfiles.io/tut-document-mapper-tutorial-sf/04.png) When configuring the data extraction, click the +Add button to open the configuration popup shown in the image below. ![](https://media.help.cloudfiles.io/tut-document-mapper-tutorial-sf/05.png) From here, you can also add a related object, allowing you to define child object mappings for scenarios where the document contains Line Items or similar structured sub-records. Specify the child object type, outline the fields that need to be extracted, and define prompts that help identify both the Line Item section and each of its individual fields. After setting up the extraction rules, upload a sample document to fine-tune the prompt and achieve the expected output. This helps ensure the AI correctly understands your instructions before deploying the configuration. ![](https://media.help.cloudfiles.io/tut-document-mapper-tutorial-sf/06.png) Once you are satisfied with the results, simply click Save to generate the Config ID, which you will later use when integrating Document Mapper with List View or Detail Page buttons in Salesforce. ![](https://media.help.cloudfiles.io/tut-document-mapper-tutorial-sf/07.png) > You’ll use this Config ID while setting up your List View or Detail Page buttons. ### Create a New List View Button To allow users to trigger Document Mapper directly from a Salesforce list view, begin by creating a new List View Button on the Business Document object. Go to Setup → Object Manager, open the Business Document object, and navigate to Buttons, Links, and Actions to create a new button or link. Configure it as a List Button, set the Content Source to URL, and choose the behavior to display in the existing window without the sidebar or header. Next, copy the template URL below, replace .vf.force.com/apex/documentMapperAction?configId={your_config_id} ``` ![](https://media.help.cloudfiles.io/tut-document-mapper-tutorial-sf/08.png) After saving the button, add it to your list view layout. ## Test it in action Once configured, users can simply click the button, upload a file, and let Document Mapper automatically create the corresponding records. Before saving, a preview screen will display the newly created record, allowing users to review and adjust the extracted field values if needed. After verifying the information, they can click Save Records to finalize the record creation. ![](https://media.help.cloudfiles.io/tut-document-mapper-tutorial-sf/09.png) After completing all the steps, you can view the newly created record by navigating to the Business Document object’s list view. By opening the newly created Business Document record, you can also see the automatically created child Line Item records in the Related List. ![](https://media.help.cloudfiles.io/tut-document-mapper-tutorial-sf/10.png) --- # Document Checklist https://help.cloudfiles.io/salesforce/document-checklist # Document Checklist Shows how to use CloudFiles Document AI with Salesforce flow automations to classify incoming documents via Natural Language Query and automatically update a student's Document Checklist. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to classify incoming documents and update the checklist appropriately. Each time a file is uploaded into Salesforce or external storage, the following actions will occur: - The file is processed using CloudFiles Document AI. - A Natural Language Query executes to classify the uploaded files. - Based on the classification, document checklist is updated. In order to setup this automation, you first need to have some pre-requisites. After this you can start setting up some query automations and updates to achieve your use-case. Check the sections below for more information. > This tutorial showcases how academic documents uploaded to a student's record in Salesforce is classified using CloudFiles Document AI. Based on the classification, the related Document Checklist (a child object) is updated with the document name, submission status, and upload date, ensuring automated tracking of student submissions. ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-document-checklist-sf/01.png) ### Initial Automation Setup There are 2 flows you will need to setup to process the uploaded files. The first flow is triggered when the document is uploaded into Salesforce or external storage. This flow sends the file to AI for processing. This might take a few seconds. Once the AI is done with processing, the second flow will trigger which will contain the processed document. You can then run queries on this processed document. - Flow 1: Send Document For Processing - Triggered when file is uploaded into Salesforce or external storage. Sends the file for processing which may take a few seconds to a minute. - Flow 2: Document Processing Complete - Triggered when the file has been processed by AI. Performs queries on the file to extract the data. > Read the article on AI Flows - Initial Setup Guide carefully to setup both the flows. Once your initial flows are setup as shown above, you are ready to move to the next step. Once your flow setup is complete, your flows should look like the following. ![](https://media.help.cloudfiles.io/tut-document-checklist-sf/02.png) ## Query Automation Setup Now that you have the initial automation setup, we can take the document processed flow and extend it to query the document and update the required fields. In this section, we show how to query the processed document, check the results and perform the necessary updates. ### Querying the document In order to query the document, we will simply use the Query Document/Dataset flow action. This action takes a processed document ID and a text query as input. The processed document ID is available as output of the Get Event Details action. Here are the full inputs used in the image below. Processed Document Id : ( {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} ) Query = Enter a clear Natural Language Classification Prompt . This prompt is used to classify academic documents uploaded to a student’s record in Salesforce. The goal is to identify the type of document and update the associated checklist accordingly. Classify the uploaded file into one of the following categories: 10th Marksheet, 12th Marksheet, Passport, Transcript, or Transfer Certificate. Based on the document type identified, return a specific number as follows: return 1 if the file is a 10th Marksheet, 2 if it is a 12th Marksheet, 3 for a Passport, 4 for a Transcript, and 5 for a Transfer Certificate. If the document does not match any of these categories, return 0. Only return the corresponding number with no additional explanation or text. For example, if a 12th Marksheet is uploaded , then the AI Output will be 2. ![](https://media.help.cloudfiles.io/tut-document-checklist-sf/03.png) ### Checking the answers The Query document action above outputs a text variable which is the full response of AI for the given query. You can use this text response with Flow decision branches to perform relevant actions based on the document type. Below, we have used the response from AI to create 5 separate branches based on the document type, which we will use in the next step. ![](https://media.help.cloudfiles.io/tut-document-checklist-sf/04.png) This step ensures the flow accurately identifies the type of document processed, allowing appropriate subsequent record updating actions. ### Updating Document Checklist Once the classification result is received and matched using decision branches, the corresponding entry in the Document Checklist, a child object of the Student record, can be filtered and updated. Each time a document is uploaded and processed, its status in the checklist is updated accordingly. ![](https://media.help.cloudfiles.io/tut-document-checklist-sf/05.png) ## See it in Action Now that everything is set up, you can test your flows. When a document is uploaded as a Salesforce File on the record, the document checklist is automatically updated. > **Note** — Note: As Flow Automation executions and document processing via AI may take a short time, the field updates will not reflect immediately. To view the updates, wait briefly and refresh the page. > **Flow 2 Debug** — Whenever a file is processed using the Process Document using AI action, a Document Processed object record is published.You can query these event object records to verify successful file processing and debug the flow.Example SOQL Query:To check Document Processed events sorted by the most recent:SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESCYou can check the Context and File Details in the Data Field of the record.When a flow runs in debug mode and executes Query Document/Dataset action, you can check the results and modify the queries if required. --- # Get CSV text Output from AI Query https://help.cloudfiles.io/salesforce/get-csv-text-output-from-ai-query # Get CSV text Output from AI Query Learn how to use CloudFiles Document AI with Salesforce flow automations to extract multiple data fields from uploaded documents in CSV format using a single natural language query. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to extract multiple data fields from uploaded documents using a single query. Each time a file is uploaded into Salesforce or external storage, the following actions will occur: - The file is processed using CloudFiles Document AI. - A Natural Language Query executes to extract information from the document in CSV format. - Extracted information is then updated in its respective fields. In order to setup this automation, you first need to have some pre-requisites. After this you can start setting up some query automations and updates to achieve your use-case. Check the sections below for more information. ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-get-csv-text-output-from-ai-query-sf/01.png) ### Initial Automation Setup There are 2 flows you will need to setup to process the uploaded files. The first flow is triggered when the document is uploaded into Salesforce or external storage. This flow sends the file to AI for processing. This might take a few seconds. Once the AI is done with processing, the second flow will trigger which will contain the processed document. You can then run queries on this processed document. - Flow 1: Send Document For Processing - Triggered when file is uploaded into Salesforce or external storage. Sends the file for processing which may take a few seconds to a minute. - Flow 2: Document Processing Complete - Triggered when the file has been processed by AI. Performs queries on the file to extract the data. Once your flow setup is complete, your flows should look like the following. ![](https://media.help.cloudfiles.io/tut-get-csv-text-output-from-ai-query-sf/02.png) > Read the article on AI Flows - Initial Setup Guide carefully to setup both the flows. Once your initial flows are setup as shown above, you are ready to move to the next step. ## Query Automation Setup Now that you have the initial automation setup, we can take the document processed flow and extend it to query the document and update the required fields. In this section, we show how to query the processed document, check the results and perform the necessary updates. ### Querying the document In order to query the document, we will simply use the Query Document/Dataset flow action. This action taken in a processed document ID and a text query as input. The processed document ID is available as output of the Get Event Details action. Here are the full inputs used in the image below. Processed Document Id : ( {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} ) Query = Enter a detailed natural language prompt that clearly defines the structure and format of the expected output: "Return the following details from the Driver's License. Full Name (First Name. + Last name), DL Number, Issue Date and Expiry Date. The ouput should be in the format FullName; DL Number;IssueDate;ExpiryDate. For example if the name is John Doe, DL number is 123456, Issue Date is 12 Mar 2014, expiry is 12 mar 2019 the output should be John Doe,123456,12-03-2014,12-03-2019. If any of the details are missing, put a space as placeholder." Example Result: ```text John Doe,12345678,12-03-2014,12-03-2019 ``` This output can now be parsed using formulas to update respective fields like name, DL number, issue date and expiry date. > One prompt can be designed to simultaneously extract multiple fields from a document. ![](https://media.help.cloudfiles.io/tut-get-csv-text-output-from-ai-query-sf/03.png) ### Parsing AI Output with Salesforce Formulas The Query Document action returns output in CSV format. Use flow formulas to extract specific values. Below are examples: ### Updating Contact Record Once the values are parsed, use an Update Records action to populate them into the correct fields. To identify the right contact record, use a Get Records element where : Id = {!Get_Triggering_Event_Details.DocumentProcessed.Context}. Filter and retrieve the ontact, then update its fields using the extracted values. ![](https://media.help.cloudfiles.io/tut-get-csv-text-output-from-ai-query-sf/04.png) ## See it in Action Now that everything is set up, you can test your flows. When a Driver's License is uploaded as Salesforce Files onto a Contact record, the required fields should get populated accordingly. > **Note** — Note: Since flow executions and AI processing may take a few moments, the updates might not appear instantly. Refresh the page to view the latest values. > **Flow 2 Debug** — Whenever a file is processed using the Process Document using AI action, a Document Processed object record is published.You can query these event object records to verify successful file processing and debug the flow.Example SOQL Query:To check Document Processed events sorted by the most recent:SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESCYou can check the Context and File Details in the Data Field of the record.When a flow runs in debug mode and executes Query Document/Dataset actions, you can check the results and modify the queries if required. ```sql SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESC ``` You can check the Context and File Details in the Data Field of the record. When a flow runs in debug mode and executes Query Document/Dataset actions, you can check the results and modify the queries if required. --- # Get JSON Output from AI Query https://help.cloudfiles.io/salesforce/get-json-output-from-ai-query # Get JSON Output from AI Query Learn how to use CloudFiles Document AI with Salesforce flow automations to extract data from documents into structured JSON and process it with Apex. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to extract data from documents in a structured JSON format. Each time a file is uploaded into Salesforce or external storage, the following actions will occur: - The file is processed using CloudFiles Document AI. - A natural language query is executed to extract information from the document in a JSON format tailored to your object and field structure. - The extracted data is parsed and processed using Salesforce Apex. In order to setup this automation, you first need to have some pre-requisites. After this you can start setting up some query automations and updates to achieve your use-case. Check the sections below for more information. ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-get-json-output-from-ai-query-sf/01.png) ### Initial Automation Setup There are 2 flows you will need to set up to process the uploaded files. The first flow is triggered when the document is uploaded into Salesforce or external storage. This flow sends the file to AI for processing. This might take a few seconds. Once the AI is done with processing, the second flow will trigger which will contain the processed document. You can then run queries on this processed document. - Flow 1: Send Document For Processing - Triggered when file is uploaded into Salesforce or external storage. Sends the file for processing which may take a few seconds to a minute. - Flow 2: Document Processing Complete - Triggered when the file has been processed by AI. Performs queries on the file to extract the data. > All information related to setting up these flows is given in the AI Flows - Initial Setup Guide article. Please go through this article carefully to set up these flows. Once your flow setup is complete, your flows should look like the following. ![](https://media.help.cloudfiles.io/tut-get-json-output-from-ai-query-sf/02.png) ## Query Automation Setup Now that you have the initial automation setup, we can take the document processed flow and extend it to query the document and update the required fields. In this section, we show how to query the processed document, check the results and perform the necessary updates. ### Querying the document In order to query the document, we will simply use the Query Document/Dataset flow action. This action taken in a processed document ID and a text query as input. The processed document ID is available as output of the Get Event Details action. ![](https://media.help.cloudfiles.io/tut-get-json-output-from-ai-query-sf/03.png) Here are the full inputs used in the above image: Processed Document Id : {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} Query = AI can be guided to generate structured outputs and responses tailored to our specific requirements, thereby simplifying data processing. Provide a clear prompt that tells the AI what data to extract, the required format for each field, and the output structure (e.g., JSON). Specify how to handle missing values (e.g., use null ) and include any key mappings for integration. > **Example:** — For example, consider a Driver's License or Passport. We need to write a query to extract various details from the document, such as the type, number, issue date, expiry date, and the holder's name. The sample query for this is:" Identify the type of KYC document provided (e.g., Passport, Driver's License). Extract the following fields from the document: Document Type (e.g., 'Passport', 'Driver's License') Document Number Full Name of the document holder Date of Issue (in YYYY-MM-DD format) Date of Expiry (in YYYY-MM-DD format) Return only the structured JSON in this exact format: { "KYC_Document_Type__c": "", "KYC_Document_Number__c": "", "KYC_Document_Holder_Name__c": "", "KYC_Document_Issue__c": "", "KYC_Document_Expiry__c": "" }\n If any field is missing or unreadable, return its value as null. Only return the JSON object and nothing else."The AI output as tested on the above sample document is as follows:{ "KYC_Document_Type__c": "Driver's License", "KYC_Document_Number__c": "64040738293", "KYC_Document_Holder_Name__c": "KOWALSKI JAN", "KYC_Document_Issue__c": "2019-03-06", "KYC_Document_Expiry__c": "2028-01-18" } The AI output as tested on the above sample document is as follows: ```json { "KYC_Document_Type__c": "Driver's License", "KYC_Document_Number__c": "64040738293", "KYC_Document_Holder_Name__c": "KOWALSKI JAN", "KYC_Document_Issue__c": "2019-03-06", "KYC_Document_Expiry__c": "2028-01-18" } ``` ### Process AI Output Using Apex Action Once the line items are available in JSON format, they can be processed in various ways within Salesforce. In this case, we use an Apex Action to process the output —it parses the JSON, maps each data field to the appropriate Object field, and updates the corresponding fields on the Contact record. ![](https://media.help.cloudfiles.io/tut-get-json-output-from-ai-query-sf/05.png) This is the Apex code used to process the JSON input : ## See it in Action Now that everything is set up, you can test your flows. When a Purchase Order is uploaded as a Salesforce File on the record, the corresponding order line items are automatically extracted, created, and listed. > **Note** — Note: As Flow Automation executions and document processing via AI may take a short time, the field updates will not reflect immediately. To view the updates, wait briefly and refresh the page. > **Flow 2 Debug** — Whenever a file is processed using the Process Document using AI action, a Document Processed object record is published.You can query these event object records to verify successful file processing and debug the flow.Example SOQL Query:To check Document Processed events sorted by the most recent:SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESCYou can check the Context and File Details in the Data Field of the record.When a flow runs in debug mode and executes Query Document/Dataset action, you can check the results and modify the queries if required. ```sql SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESC ``` You can check the Context and File Details in the Data Field of the record. When a flow runs in debug mode and executes Query Document/Dataset action, you can check the results and modify the queries if required. --- # KYC Upload Checker https://help.cloudfiles.io/salesforce/kyc-upload-checker # KYC Upload Checker Set up a KYC upload checker in Salesforce using CloudFiles Document AI and flow automations to classify uploaded documents and auto-update Account fields. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to create a KYC upload checker. Each time a file is uploaded into Salesforce or external storage, the following actions will occur : - The file will be processed using CloudFiles Document AI. - Natural Language Queries will execute to classify the file and extract key details. - Corresponsing fields will be updated in Salesforce. In order to setup this automation, you first need to have some pre-requisites. After this you can start setting up some query automations and updates to achieve your use-case. Check the sections below for more information. In the image below, we have demonstrated this in action. ![](https://media.help.cloudfiles.io/tut-kyc-upload-checker-sf/01.gif) ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-kyc-upload-checker-sf/02.png) ### Initial Automation Setup There are 2 flows you will need to setup to process the uploaded files. The first flow is triggered when the document is uploaded into Salesforce or external storage. This flow sends the file to AI for processing. This might take a few seconds. Once the AI is done with processing, the second flow will trigger which will contain the processed document. You can then run queries on this processed document. - Flow 1: Send Document For Processing - Triggered when file is uploaded into Salesforce or external storage. Sends the file for processing which may take a few seconds to a minute. - Flow 2: Document Processing Complete - Triggered when the file has been processed by AI. Performs queries on the file to extract the data. All information related to setting up these flows is given in the AI Flows - Initial Setup Guide article. Please go through this article carefully to set up these flows. Once your flow setup is complete, your flows should look like the following. ![](https://media.help.cloudfiles.io/tut-kyc-upload-checker-sf/03.png) > Read the article on AI Flows - Initial Setup Guide carefully to setup both the flows. Once your initial flows are setup as shown above, you are ready to move to the next step. ## Query Automation Setup Now that you have the initial automation setup, we can take the document processed flow and extend it to query the document and update the required fields. In this section, we show how to query the processed document, check the results and perform the necessary updates. ### Classifying the document In order to classify the document, we will simply use the Query Document/Dataset flow action along with a natural language prompt. This action taken in a processed document ID and a text query as input. The processed document ID is available as output of the Get Event Details action. Here are the full inputs used in the image below. Processed Document Id = Outputs from Get Event Details : Get Processed Event Details > Document Processed > ProcessedDocumentId Query = Classify the file as either a driving license or a passport. If the file does not match either of these types, classify it as other. Based on the classification, give the output as one of the following - Driving License, Passport, or Other. ![](https://media.help.cloudfiles.io/tut-kyc-upload-checker-sf/04.png) ### Extract Document Specific Info Now that our documents are classified, we can use the output of the 'Query Document' action to create 2 branches in our flow. In each of the branches, we will ask document specific questions to extract relevant information. First, we will add a decision element to determine whether a document is a Driving License or a Passport based on the earlier classification query. We will create two outcomes for this decision element, one for each document type, as shown below - and direct the flow accordingly. Then, we will add KYC-specific queries using the ‘Query Document’ action to retrieve crucial KYC details. Finally, we will populate these details into the relevant custom fields of the Account object. The detailed steps are given below - ![](https://media.help.cloudfiles.io/tut-kyc-upload-checker-sf/05.gif) Next, we will use more natural language queries to extract specific information from the documents. Different relevant queries can be written as text constants and applied as needed. It is advisable to make these queries highly objective and specific. For this tutorial, we have used three queries: one to fetch the Passport number, another for the Passport country, and a third for the Driver's license number. Refer to the queries below for an understanding of prompt writing. You can customize these queries to suit your requirements. > Prompt to fetch Driver’s License Number - "Given document is a driving license. Extract the Driving License number from this and only output the driving license number. If Driving License number cannot be read, give output as Not Available." > Prompt to fetch Passport Country' - "Given document is a passport. Extract the Passport country from this and classify is as one of the following - USA, UK, Germany, Australia, India. If passport country cannot be classified as one of the given options then output Other." > Prompt to fetch Passport Number - "Given document is a passport. Extract the Passport number from this and only output the passport number. If passport number cannot be read, give output as Not Available." The output of each of the queries will be used in next section to update the Salesforce fields. ### Updating Salesforce fields We will use ‘Update Records’ action for updating the above fetched information in the relevant fields of the Account object record. Follow these configurations - Update Records > Check Specify conditions to identify records, and set fields individually > Fill Account as Object > **Note** — Note - Here we are using earlier mentioned context of the uploaded file to find the right Account record by comparing Account ‘Id’ with the ‘Context’. In order to do so use Id Equals Outputs from Get Processed Event Details > DocumentProcessed > Context field-value pair to filter account records in ‘Update Records’. Refer to the video given below for visual understanding - [Watch video](https://youtu.be/LQ-kLwn2aiM) ## See it in Action Now that everything is setup, let’s test our flow. Follow the steps below to see this AI automation in action. - Simply create a new Account record in Salesforce and then go the ‘Files’ tab that we added previously. - Upload KYC document(s) using the ‘Files’ tab. You can upload the files one by one or multiple files at once. You can choose to upload passports, driver's licenses, or any other document types. - The flow may take a few seconds to run so click on the refresh page on the top. - Navigate to the ‘Details’ tab. You will find the relevant fields updated if the desired documents are uploaded, or the AI output will indicate if the Passport or Driver's License was not detected. ![](https://media.help.cloudfiles.io/tut-kyc-upload-checker-sf/06.gif) Congratulations! You've successfully created an AI-powered KYC Documents checker using CloudFiles AI & Salesforce flow. --- # Line Item Extraction https://help.cloudfiles.io/salesforce/line-item-extraction # Line Item Extraction This tutorial shows how to use CloudFiles with Salesforce flow automations to extract order line item data from uploaded purchase orders using Document AI and Apex. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to extract data from documents in a specified format. Each time a file is uploaded into Salesforce or external storage, the following actions will occur: - The file is processed using CloudFiles Document AI. - A Natural Language Query executes to extract order line items from the uploaded purchase orders. - Information is extracted - The extracted information is then processed. In order to setup this automation, you first need to have some pre-requisites. After this you can start setting up some query automations and updates to achieve your use-case. Check the sections below for more information. Refer to the below image to understand the working: ![](https://media.help.cloudfiles.io/tut-line-item-extraction-sf/01.png) ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-line-item-extraction-sf/02.png) ### Initial Automation Setup There are 2 flows you will need to setup to process the uploaded files. The first flow is triggered when the document is uploaded into Salesforce or external storage. This flow sends the file to AI for processing. This might take a few seconds. Once the AI is done with processing, the second flow will trigger which will contain the processed document. You can then run queries on this processed document. - Flow 1: Send Document For Processing - Triggered when file is uploaded into Salesforce or external storage. Sends the file for processing which may take a few seconds to a minute. - Flow 2: Document Processing Complete - Triggered when the file has been processed by AI. Performs queries on the file to extract the data. > Read the article on AI Flows - Initial Setup Guide carefully to setup both the flows. Once your initial flows are setup as shown above, you are ready to move to the next step. Once your flow setup is complete, your flows should look like the following. ![](https://media.help.cloudfiles.io/tut-line-item-extraction-sf/03.png) ## Query Automation Setup Now that you have the initial automation setup, we can take the document processed flow and extend it to query the document and update the required fields. In this section, we show how to query the processed document, check the results and perform the necessary updates. ### Querying the document In order to query the document, we will simply use the Query Document/Dataset flow action. This action taken in a processed document ID and a text query as input. The processed document ID is available as output of the Get Event Details action. ![](https://media.help.cloudfiles.io/tut-line-item-extraction-sf/04.png) Here are the full inputs used in the above image: Processed Document Id : ( {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} ) Query = AI can be guided to generate structured outputs and responses tailored to our specific requirements, thereby simplifying data processing. Provide a clear prompt that tells the AI what data to extract, the required format for each field, and the output structure (e.g., JSON). Specify how to handle missing values (e.g., use null ) and include any key mappings for integration. > **Example:** — Suppose there is a parent object called Purchase Orders, which has a related child object called Order Line Items. Each order line item includes the following fields: Line Item Name, Quantity, Unit Price, and Line Amount.We need a query that can extract the Order Line Items from a given sample Purchase Order and return the results in a structured JSON array format.The sample query is:Extract all line items from the Purchase Order document. For each line item, extract the following fields: - Line Item Name - Quantity (whole number) - Unit Price (currency value with two decimals) - Line Amount (currency value with two decimals) Return the result as a JSON array of objects. Each object must have these keys: - Item_Name__c - Quantity__c - Unit_Price__c - Line_Amount__c Format example: [ { "Item_Name__c": "", "Quantity__c": , "Unit_Price__c": , "Line_Amount__c": }, { "Item_Name__c": "", "Quantity__c": , "Unit_Price__c": , "Line_Amount__c": } ] Rules: - If any field is missing for a line item, set its value to null (e.g., "Unit_Price__c": null). - Quantity must be an integer (no decimals). - Unit Price and Line Amount must be numbers with two decimal places. - Output only the JSON array. No extra text, comments, or explanation. The AI Output as tested in the AI Playground on the above sample document is as follows:[{"Line Item Name": "Onsite STEM Workshop Training", "Quantity": "1", "Unit Price": "5000.00", "Line Amount": "5000.00"}, {"Line Item Name": "STEM Workbook 1", "Quantity": "850", "Unit Price": "12.00", "Line Amount": "10200.00"}, {"Line Item Name": "STEM Workbook 2", "Quantity": "850", "Unit Price": "42.00", "Line Amount": "35700.00"}, {"Line Item Name": "STEM Workbook 3", "Quantity": "850", "Unit Price": "15.50", "Line Amount": "13175.00"}, {"Line Item Name": "Test Series 1", "Quantity": "850", "Unit Price": "9.50", "Line Amount": "8075.00"}, {"Line Item Name": "Test Series 2", "Quantity": "850", "Unit Price": "11.50", "Line Amount": "9775.00"}] The AI Output as tested in the AI Playground on the above sample document is as follows: [{"Line Item Name": "Onsite STEM Workshop Training", "Quantity": "1", "Unit Price": "5000.00", "Line Amount": "5000.00"}, {"Line Item Name": "STEM Workbook 1", "Quantity": "850", "Unit Price": "12.00", "Line Amount": "10200.00"}, {"Line Item Name": "STEM Workbook 2", "Quantity": "850", "Unit Price": "42.00", "Line Amount": "35700.00"}, {"Line Item Name": "STEM Workbook 3", "Quantity": "850", "Unit Price": "15.50", "Line Amount": "13175.00"}, {"Line Item Name": "Test Series 1", "Quantity": "850", "Unit Price": "9.50", "Line Amount": "8075.00"}, {"Line Item Name": "Test Series 2", "Quantity": "850", "Unit Price": "11.50", "Line Amount": "9775.00"}] ### Process AI Output Using Apex Action Once the line items are available in JSON format, they can be processed in various ways within Salesforce. In this case, we use an Apex Action to handle the data — it reads the JSON, maps each item to the correct Salesforce fields, associates them with the specified Purchase Order, and inserts all the records in a single step. ![](https://media.help.cloudfiles.io/tut-line-item-extraction-sf/06.png) This is the Apex code used to process the JSON input : ## See it in Action Now that everything is set up, you can test your flows. When a Purchase Order is uploaded as a Salesforce File on the record, the corresponding order line items are automatically extracted, created, and listed. > **Note** — Note: As Flow Automation executions and document processing via AI may take a short time, the field updates will not reflect immediately. To view the updates, wait briefly and refresh the page. > **Flow 2 Debug** — Whenever a file is processed using the Process Document using AI action, a Document Processed object record is published.You can query these event object records to verify successful file processing and debug the flow.Example SOQL Query:To check Document Processed events sorted by the most recent:SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESCYou can check the Context and File Details in the Data Field of the record.When a flow runs in debug mode and executes Query Document/Dataset action, you can check the results and modify the queries if required. --- # Mass property extraction from a Medical Form https://help.cloudfiles.io/salesforce/mass-property-extraction-from-a-medical-form # Mass property extraction from a Medical Form Learn how to set up Salesforce flow automations with CloudFiles Document AI and Custom Metadata to extract multiple properties from uploaded medical form documents. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to extract multiple properties from documents using custom metadata. Each time a file is uploaded into Salesforce or external storage, the following actions will occur: - The file is processed using CloudFiles Document AI. - The natural language query is stored as a field in Custom Metadata and is used to extract information from the document. . - The extracted data is processed using Salesforce Apex. In order to setup this automation, you first need to have some pre-requisites. After this you can start setting up some query automations and updates to achieve your use-case. Check the sections below for more information. ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-mass-property-extraction-from-a-medical-form-sf/01.png) ### Initial Automation Setup There are 2 flows you will need to set up to process the uploaded files. The first flow is triggered when the document is uploaded into Salesforce . This flow sends the file to AI for processing. This might take a few seconds. Once the AI is done with processing, the second flow will trigger which will contain the processed document. You can then run queries on this processed document. - Flow 1: Send Document For Processing - Triggered when file is uploaded into Salesforce or external storage. Sends the file for processing which may take a few seconds to a minute. - Flow 2: Document Processing Complete - Triggered when the file has been processed by AI. Performs queries on the file to extract the data. > All information related to setting up these flows is given in the AI Flows - Initial Setup Guide article. Please go through this article carefully to set up these flows. Once your flow setup is complete, your flows should look like the following. ![](https://media.help.cloudfiles.io/tut-mass-property-extraction-from-a-medical-form-sf/02.png) ### Configure the Custom Metadata Custom Metadata is lightweight, efficient, supports org-to-org transfers, and runs in the background. In this tutorial, we use a Custom Metadata type called CloudFiles Prompts which includes four fields: Label, Field_API_Name__c, Field_Type__c (e.g., Date, String, Integer), and Prompt__c. Prompt__c stores a natural language query used to fetch a value, mapped to the field defined in Field_API_Name__c, with its type specified in Field_Type__c. Steps to Add a New Record to Custom Metadata: - Go to Setup (click the gear icon → Setup). - In the Quick Find box, type "Custom Metadata Types" and click it. - Click on your custom metadata type (e.g., CloudFiles_Prompts). - Under the custom metadata details, click "Manage Records". - Click the "New" button to add a new record. - Fill in the required fields. - Click Save. Below is an example of two entries in the CloudFiles Prompts ,Custom Metadata, showing the mapped fields and prompt details: ![](https://media.help.cloudfiles.io/tut-mass-property-extraction-from-a-medical-form-sf/03.png) ## Query Automation Setup Now that you have the initial automation setup, we can take the document processed flow and extend it to query the document and update the required fields. In this section, we show how to query the processed document, check the results and perform the necessary updates. ### Get the Custom Metadata Now to use the Custom Metadata we created, use a Get Records element to fetch all created CloudFiles Prompts records. > Since Custom Metadata behaves like standard records, we can use 'Get Records' to query and retrieve its entries in flows. ![](https://media.help.cloudfiles.io/tut-mass-property-extraction-from-a-medical-form-sf/04.png) ### Create a Prompt Collection Once the CloudFiles Prompts records have been successfully retrieved, we add a Loop element to iterate through the output CloudFiles Prompts record collection. For each record in the loop,we create an Apex-defined variable Var_Prompt to hold structured data such that: - {!Var_Prompt.id} - {!Var_Prompt.query} Then the populated Var_Prompt is added into the Apex-defined collection variable VarColl_Prompt. ### Execute queries in batch The previous steps consolidates all queries into a single collection, preparing them for batch execution using Query Document/Dataset (Batch). In this step, we will actually use this action along with the collection variable from previous step to execute these queries. This action takes in 2 inputs - - Processed Document Id: Select Triggering cldfs__CloudFilesEvent__c {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} - Prompts: Select VarColl_Prompt (the previously created query collection) The final action with the inputs is shown below - ![](https://media.help.cloudfiles.io/tut-mass-property-extraction-from-a-medical-form-sf/05.png) > **Example:** — Suppose the medical form shown below is uploaded to the Files section of the corresponding record.The image below illustrates how values extracted using prompts stored in Custom Metadata are mapped to their respective fields on the Salesforce details page of the medical form. ### Process AI Output Using Apex Action Once the AI output is received from the Query (Batch) action, a Apex action is used to handle the data. This Apex class maps the AI-generated prompt results to fields on Medical Form records using the custom metadata type CloudFiles Prompts. It loops through each record and its prompts, checks the field type, sets the field values, and updates the records in Salesforce. ![](https://media.help.cloudfiles.io/tut-mass-property-extraction-from-a-medical-form-sf/08.png) This is the Apex code used to process the AI output: ## See it in Action Now that everything is set up, you can test your flows. When a Medical form is uploaded as a Salesforce File on the record, the properties are extracted and updated in the record. > **Note** — Note: As Flow Automation executions and document processing via AI may take a short time, the field updates will not reflect immediately. To view the updates, wait briefly and refresh the page. > **Flow 2 Debug** — Whenever a file is processed using the Process Document using AI action, a Document Processed object record is published.You can query these event object records to verify successful file processing and debug the flow.Example SOQL Query:To check Document Processed events sorted by the most recent:SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESCYou can check the Context and File Details in the Data Field of the record.When a flow runs in debug mode and executes Query Document/Dataset action, you can check the results and modify the queries if required. --- # Signature Checking https://help.cloudfiles.io/salesforce/signature-checking # Signature Checking Tutorial on using CloudFiles with Salesforce flow automations to check if a document is signed and authenticated, updating Salesforce records accordingly. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to check if a document is signed and authenticated . Each time a file is uploaded into Salesforce or external storage, the following actions will occur: - The file is processed using CloudFiles Document AI. - A Natural Language Query runs to detect the presence of a signature . - The related Salesforce record is updated to reflect whether the signature is present or not. In order to setup this automation, you first need to have some pre-requisites. After this you can start setting up some query automations and updates to achieve your use-case. Check the sections below for more information. ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-signature-checking-sf/01.png) ### Initial Automation Setup There are 2 flows you will need to setup to process the uploaded files. The first flow is triggered when the document is uploaded into Salesforce or external storage. This flow sends the file to AI for processing. This might take a few seconds. Once the AI is done with processing, the second flow will trigger which will contain the processed document. You can then run queries on this processed document. - Flow 1: Send Document For Processing - Triggered when file is uploaded into Salesforce or external storage. Sends the file for processing which may take a few seconds to a minute. - Flow 2: Document Processing Complete - Triggered when the file has been processed by AI. Performs queries on the file to extract the data. > Read the article on AI Flows - Initial Setup Guide carefully to setup both the flows. Once your initial flows are setup as shown above, you are ready to move to the next step. Once your flow setup is complete, your flows should look like the following. ![](https://media.help.cloudfiles.io/tut-signature-checking-sf/02.png) ## Query Automation Setup Now that you have the initial automation setup, we can take the document processed flow and extend it to query the document and update the required fields. In this section, we show how to query the processed document, check the results and perform the necessary updates. ### Querying the document In order to query the document, we will simply use the Query Document/Dataset flow action. This action taken in a processed document ID and a text query as input. The processed document ID is available as output of the Get Event Details action. Here are the full inputs used in the image below. Processed Document Id : ( {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} ) Query = Enter a clear Natural Language Classification Prompt such as: Check if a valid signature from a doctor is present in the given document. A valid signature may be handwritten or digital and is typically located near the bottom or in a designated section of the document. It may also be accompanied by identifying information such as the doctor’s name, designation, or license number. Return 'Yes' if a valid signature from a doctor is present, otherwise return 'No'. ![](https://media.help.cloudfiles.io/tut-signature-checking-sf/03.png) > Example:Suppose a medical prescription, as shown below, is uploaded to the Files section of the corresponding record.To verify the authenticity of the document, we use the following query:"Check if the document contains a valid doctor's signature. Return 'Yes' if a valid signature is present; otherwise, return 'No'."This query helps determine whether the document is verified based on the presence of a valid signature. The AI Output for this document is 'Yes'. This query helps determine whether the document is verified based on the presence of a valid signature. The AI Output for this document is 'Yes'. ### Check AI Output and Update the Record The Query Document action returns text variables as the AI's response to the input query. If the response is Yes, indicating the document is verified, proceed to identify the correct Patient Record record. To do this, compare the ‘Id’ with the ‘Context’. In order to do so use Id Equals Outputs from Get Processed Event Details > DocumentProcessed > Context field-value pair to filter contact records in ‘Update Records’. ![](https://media.help.cloudfiles.io/tut-signature-checking-sf/05.png) ## See it in Action Now that everything is set up, you can test your flows. When a medical form or prescription is uploaded into a Medical form record, the verfied status is updated if a valid signature is present. > **Note** — Note: As Flow Automation executions and document processing via AI may take a short time, the field updates will not reflect immediately. To view the updates, wait briefly and refresh the page. > **Flow 2 Debug** — Whenever a file is processed using the Process Document using AI action, a Document Processed object record is published.You can query these event object records to verify successful file processing and debug the flow.Example SOQL Query:To check Document Processed events sorted by the most recent:SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESCYou can check the Context and File Details in the Data Field of the record.When a flow runs in debug mode and executes Query Document/Dataset actions, you can check the results and modify the queries if required. ```sql SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESC ``` You can check the Context and File Details in the Data Field of the record. When a flow runs in debug mode and executes Query Document/Dataset actions, you can check the results and modify the queries if required. --- # Simple Data Extraction from KYC Files https://help.cloudfiles.io/salesforce/simple-data-extraction-from-kyc-files # Simple Data Extraction from KYC Files Learn how to set up Salesforce flow automations with CloudFiles Document AI to automatically extract KYC data (name, dates, license number) from uploaded Driving License files and update Contact record fields. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to extract data from uploaded documents . Each time a file is uploaded into Salesforce or external storage, the following actions will occur: - The file is processed using CloudFiles Document AI. - A Natural Language Query executes to extract information from the Driving License. - Information is automatically updated in its respective fields. In order to setup this automation, you first need to have some pre-requisites. After this you can start setting up some query automations and updates to achieve your use-case. Check the sections below for more information. ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-simple-data-extraction-from-kyc-files-sf/01.png) ### Initial Automation Setup There are 2 flows you will need to setup to process the uploaded files. The first flow is triggered when the document is uploaded into Salesforce or external storage. This flow sends the file to AI for processing. This might take a few seconds. Once the AI is done with processing, the second flow will trigger which will contain the processed document. You can then run queries on this processed document. - Flow 1: Send Document For Processing - Triggered when file is uploaded into Salesforce or external storage. Sends the file for processing which may take a few seconds to a minute. - Flow 2: Document Processing Complete - Triggered when the file has been processed by AI. Performs queries on the file to extract the data. > Read the article on AI Flows - Initial Setup Guide carefully to setup both the flows. Once your initial flows are setup as shown above, you are ready to move to the next step. Once your flow setup is complete, your flows should look like the following. ![](https://media.help.cloudfiles.io/tut-simple-data-extraction-from-kyc-files-sf/02.png) ## Query Automation Setup Now that you have the initial automation setup, we can take the document processed flow and extend it to query the document and update the required fields. In this section, we show how to query the processed document, check the results and perform the necessary updates. ### Querying the document In order to query the document, we will simply use the Query Document/Dataset flow action. This action takes in a processed document ID and a text query as input. The processed document ID is available as output of the Get Event Details action. Here are the full inputs used in the images below. Processed Document Id : ( {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} ) Query = Enter a clear Natural Language Data Extraction Prompt such as: Return the Full Name including the first and last name of the Driving License Holder ![](https://media.help.cloudfiles.io/tut-simple-data-extraction-from-kyc-files-sf/03.png) Processed Document Id : ( {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} ) Query = Enter a clear Natural Language Data Extraction Prompt such as: Return the Driving License Issue Date in DD-MM-YYYY Format ![](https://media.help.cloudfiles.io/tut-simple-data-extraction-from-kyc-files-sf/04.png) Processed Document Id : ( {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} ) Query = Enter a clear Natural Language Data Extraction Promptsuch as: Return the Driving License Expiry Date in DD-MM-YYYY Format ![](https://media.help.cloudfiles.io/tut-simple-data-extraction-from-kyc-files-sf/05.png) > The extracted date is returned as a text string but can be converted to a Date type data type using Salesforce formulas. Processed Document Id : ( {!Get_Triggering_Event_Details.DocumentProcessed.ProcessedDocumentId} ) Query = Enter a clear Natural Language Classification Prompt such as: Return the Driving License Number ![](https://media.help.cloudfiles.io/tut-simple-data-extraction-from-kyc-files-sf/06.png) ### Updating Contact Record The Query document action above outputs text variables which is the full response of AI for the given query.To find the right Contact record compare 'Id' with the 'Context'. In order to do so use Id Equals Outputs from Get Processed Event Details > DocumentProcessed > Context field-value pair to filter contact records in 'Update Records'. ![](https://media.help.cloudfiles.io/tut-simple-data-extraction-from-kyc-files-sf/07.png) Now set the field values manually as shown in the below image: ![](https://media.help.cloudfiles.io/tut-simple-data-extraction-from-kyc-files-sf/08.png) ## See it in Action Now that everything is set up, you can test your flows. When a Driver's License is uploaded into a Contact folder from CloudFiles LWC on Contact record page, the mapped fields should be updated automatically. > **Note** — Note: As Flow Automation executions and document processing via AI may take a short time, the field updates will not reflect immediately. To view the updates, wait briefly and refresh the page. > **Flow 2 Debug** — Whenever a file is processed using the Process Document using AI action, a Document Processed object record is published.You can query these event object records to verify successful file processing and debug the flow.Example SOQL Query:To check Document Processed events sorted by the most recent:SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESCYou can check the Context and File Details in the Data Field of the record.When a flow runs in debug mode and executes Query Document/Dataset actions, you can check the results and modify the queries if required. ```sql SELECT Id, Name, CreatedDate, cldfs__Data__c FROM cldfs__CloudFilesEvent__c WHERE cldfs__Type__c = 'document-processed' ORDER BY CreatedDate DESC ``` You can check the Context and File Details in the Data Field of the record. When a flow runs in debug mode and executes Query Document/Dataset actions, you can check the results and modify the queries if required. --- # Splitting multiple combined POs into child objects https://help.cloudfiles.io/salesforce/splitting-multiple-combined-pos-into-child-objects # Splitting multiple combined POs into child objects Learn how to configure three Salesforce flows using CloudFiles Document AI to automatically split a multi-document file into individual purchase orders, create child records for each split, and attach the corresponding files to their records. > Kind: Tutorial · Updated: Jul 4, 2026 ## Overview In this tutorial, we will see how CloudFiles can be used with Salesforce flow automations to split multiple combined documents from an uploaded Salesforce file. Each time a file is uploaded into Salesforce, the following actions will occur: - The file is split using CloudFiles Document AI. - Child records are created for each split file. - The split file is then linked to its respective record. In order to set up this automation, you first need to have some pre-requisites. After this you can start setting up AI automations and updates to achieve your use-case. Check the sections below for more information. ## Pre-requisites Before starting with this tutorial, you need to ensure that CloudFiles Document AI is properly installed & configured in your system. Additionally, you also need to create some initial automations to process the files before you can query them. Check the 2 sections below carefully - ### Installation & Configuration Ensure the following before starting: - CloudFiles Document AI Installation and Configuration are complete. - You have an Active Subscription or Trial of CloudFiles Document AI. - The CloudFiles Event Mode setting is set to Custom Object ![](https://media.help.cloudfiles.io/tut-splitting-multiple-combined-pos-into-child-objects-sf/01.png) ### Automation Setup In this use case, a file containing multiple purchase documents will be uploaded to an Account record. The file will be split into individual purchase orders, with separate records created for each PO. Finally, each split file will be attached to its corresponding record. The following three flows are required, to achieve this: Flow 1: Send Document for Splitting - Triggered when a file is uploaded to Salesforce, this flow sends the file for AI-based splitting, which may take a few seconds to a minute. Flow 2: Handling the Split Event - Triggered when the file has been split by AI, this flow processes the resulting parts to create corresponding child records. Flow 3: Attach Files to Respective Records - Triggered when a new child record is created, this flow attaches the relevant split file segment to the respective record. ## Send Document for Splitting This flow is triggered automatically when Salesforce Files are uploaded or attached to an Account record. It uses CloudFiles Document AI to split the uploaded file into multiple documents, with each split representing an individual purchase order or document unit. ![](https://media.help.cloudfiles.io/tut-splitting-multiple-combined-pos-into-child-objects-sf/02.png) ### Setting up the trigger Create a Record-Triggered Flow on the object cldfs__CloudFilesEvent__c, with the trigger condition: Type = salesforce-file-attached AND Object Type = Account. Enable the Run Asynchronously path. ### Retrieve Event Details Within the asynchronous path, use the Get Event Details action. Set the Event (Custom Object) to the Triggering cldfs__CloudFilesEvent__c {!$Record}. The Outputs from Get Event Details > Salesforce Files Details will give you access to: - ContentDocumentIds - A list of uploaded or attached file IDs. ( {!Get_Event_Details.SalesforceFiles.ContentDocumentIds} ) - ParentId – The Account record ID that the files were uploaded to. ( {!Get_Event_Details.SalesforceFiles.ParentId} ) These outputs will be used in the next step to split each uploaded file individually. ![](https://media.help.cloudfiles.io/tut-splitting-multiple-combined-pos-into-child-objects-sf/03.png) > For more information refer to the Process Salesforce Files article. This flow is based on the same structure outlined in the article, but instead of using the Process Document action, we are using the Split Document Using AI action. ### Split Attached Files Next, add a Loop element to iterate through each ContentDocumentId retrieved from the Get Event Details step. This prepares the flow to split each uploaded file one by one. Within the loop, add the Split Document using AI action. Configure it with following inputs: - File Id - Current Item from Loop ({!For_Every_Attached_Content_Document}) - Library - type salesforce. - Context - select Outputs from Get Event Details > Salesforce Files Details > ParentId ( {!Get_Triggering_Event_Details.SalesforceFiles.ParentId} ). - You can also provide optional Instructions to guide the AI on how to split the file. For example: "This is a bundle of scanned purchase orders. Each purchase order starts with a bold header containing the name of the company or their logo. Split at each occurrence of this pattern and name them as the name of the company." Each time this Split Document Using AI action is executed, CloudFiles processes the uploaded file, performs the split, and publishes a Document Split event once it's done. This event becomes the trigger for the next flow — Flow 2: Handling the Split Event. > For more information refer to the Split Document Using AI action. ## Handling the Split Event Once a file is successfully split using CloudFiles Document AI, a Document Split event is published. This flow is triggered by that event and is responsible for processing the resulting split files — creating child records (e.g., Purchase Orders) for each individual document segment. After completing the flow setup, your flow should appear as shown below. ![](https://media.help.cloudfiles.io/tut-splitting-multiple-combined-pos-into-child-objects-sf/04.png) ### Setting up the trigger Create a Record-Triggered Flow on the object cldfs__CloudFilesEvent__c, with the trigger condition: Type = document-split. Enable the Run Asynchronously path. ### Retrieve Event Details Within the asynchronous path, use the Get Event Details action. Set the Event (Custom Object) to the Triggering cldfs__CloudFilesEvent__c {!$Record}. ![](https://media.help.cloudfiles.io/tut-splitting-multiple-combined-pos-into-child-objects-sf/05.png) The Outputs from Get Event Details > Document Split will give you access to: - ContentVersionIds - A list of IDs of all the split files generated ( {!Get_Triggering_Event_details.DocumentSplit.ContentVersionIds} ) - RecordId – The Account record ID ( passed as Context in Flow 1) ( {!Get_Event_Details.DocumentSplit.RecordId} ) These outputs will be used in the next step to split each uploaded file individually. ### Process Created Files Use a Get Records element to fetch all created ContentVersion records by matching Id In {!Get_Triggering_Event_details.DocumentSplit.ContentVersionIds}. > The Split Document Using AI action returns both the split files and the original merged file. The merged document, typically named Blank Page, should be filtered out to prevent the creation of unnecessary child records. This can be achieved by checking the file name and applying the appropriate condition. Add a Loop element to iterate through the output ContentVersion record collection. For each record in the loop i.e. for each split file, respective Child Object records shall be created in the subsequent steps. ![](https://media.help.cloudfiles.io/tut-splitting-multiple-combined-pos-into-child-objects-sf/06.png) ### Configure Child Records For each Content Version in the loop, configure a Single Child Record Variable and assign the following values: - For the relationship field on the Child Record (e.g., Account__c) , use: Outputs from Get Triggering Event Details > Document Split > RecordId {!Get_Triggering_Event_details.DocumentSplit.RecordId} - For the respective file reference field (e.g., Content_Document_Id__c), use: Current Item from Loop For Content Versions > ContentDocument ID > ContentDocument ID {!For_Content_Versions.ContentDocument.Id} Add each assigned record to a Record Collection Variable. This approach supports bulk record creation while minimizing DML statements and reducing governor limit risk. ![](https://media.help.cloudfiles.io/tut-splitting-multiple-combined-pos-into-child-objects-sf/07.png) ### Create Child Records After exiting the loop, use a Create Records action to insert all records stored in the collection variable. This creates one child record per split file. ![](https://media.help.cloudfiles.io/tut-splitting-multiple-combined-pos-into-child-objects-sf/08.png) Once the child records have been successfully created for each split document, the final step is to make those files accessible from the records themselves. Although each record stores a reference to its associated split file, a ContentDocumentLink must be created to display the file in the record's Files related list. This is handled in Flow 3: Attach Files to Respective Records. ## Attach Files to Respective Records This flow attaches each split document to the corresponding child record (e.g., Purchase Order). It reads the file reference (stored as ContentDocumentId) from the record and links the file using a standard Salesforce ContentDocumentLink. Create a Record-Triggered Flow on the Child Object with the trigger condition that the file reference field (e.g., Content_Document_Id__c) is not null. This ensures the flow only runs for records that already contain a valid file reference. Finally, add a create records element to create a ContentDocumentLink. The ContentDocumentId should be sourced from the record's file reference field, and the LinkedEntityId should be the record's ID {!$Record.Id} Refer to the below image for more information: ![](https://media.help.cloudfiles.io/tut-splitting-multiple-combined-pos-into-child-objects-sf/09.png) With this final step, the automation is complete — transforming uploaded files into individually split, recorded, and attached documents within Salesforce. > **Note** — Note: As Flow Automation executions and document processing via AI may take a short time, the field updates will not reflect immediately. To view the updates, wait briefly and refresh the page. --- ## HubSpot: Document Management --- # Workflow Actions https://help.cloudfiles.io/hubspot/workflow-actions # Workflow Actions Learn how to effectively use CloudFiles actions in HubSpot workflows with this comprehensive document. Discover step-by-step instructions for creating folders, attachments, datarooms, and more, along with links to each individual action guide. > Kind: Workflow action · Updated: Jul 8, 2026 Detailed instructions to use CloudFiles actions inside HubSpot workflows. - Add to Dataroom Action: The Add to dataroom action lets you add files, folders, and file request blocks from various cloud storage to datarooms through workflows, with customizable destination folders. - Copy Resource Action: The Copy Resource action allows you to create and place copies of files in any cloud storage, including renaming them during the process. This works across platforms like SharePoint and Google Drive. - Create Attachment Action: The Create attachment action links files, folders, or datarooms to HubSpot records, displaying them as tiles in the CloudFiles widget for easy access. - Create Dataroom Action: The Create Dataroom action allows creating or cloning dataroom templates using HubSpot workflows. - Create Folder Action: The Create Folder action by CloudFiles allows automatic folder creation in cloud storages using HubSpot workflows, supporting complex hierarchies and auto-creating folder attachments on HubSpot records. - Delete Attachment - This action allows you to automatically remove file/folder attachments from HubSpot records using workflows which is helpful when there are too many files or folders attached in the CloudFiles widget, or when certain attachments are no longer needed. - Delete Dataroom Action: The Delete Dataroom action in CloudFiles lets you delete file datarooms through HubSpot workflows. - Delete Resource Action - The Delete Resource action in CloudFiles allows you to remove files or folders from your cloud storage. - Generate Document Action- The Generate Document action allows you to automatically create documents using predefined templates within HubSpot workflows and save generated document to a pre-defined destination. - Get Attachment Details Action: The Get Attachment details action retrieves attachment details linked to HubSpot records, enabling process automation and automatic creation of attachments and sharing links. - Get Resource Property Action - The "Get Resource Property" action in CloudFiles retrieves the external URL and various metadata related to a file or folder stored in your cloud library. - How to get the folder, drive, site ID etc... required for automations? Drive ID, folder ID, folder path or a file path are generally required for automations related to HubSpot workflows. - Move HubSpot Files Action: The Move HubSpot Files action transfers files from HubSpot's file manager to external storage, counting each file copy as a separate automation action. It is ideal for managing files collected via HubSpot forms. - Move Resource Action - The Move Resource action by CloudFiles is used to move the file from one destination to another destination. - Share Attachment Action: The Share Attachment action by CloudFiles allows sharing attachments through HubSpot workflows, similar to manually creating a sharing link from a HubSpot record. - Update Link Settings Action: The Update Link Settings action allows you to modify security settings of links in HubSpot, such as disabling downloads, setting expiry dates, and requiring email verification. - Update Resource Permissions Action - The Update Resource Permission action by CloudFiles allows you to manage access to files or folders by specifying email addresses. You can grant or revoke access to a particular file or folder. - Update Resource Action - The Update Resource action in CloudFiles allows you to update metadata, such as renaming files and folders or adding descriptions. --- # Add to Dataroom Action https://help.cloudfiles.io/hubspot/add-to-dataroom-action # Add to Dataroom Action Learn how to use the "Add to dataroom" action by CloudFiles to effortlessly insert files, folders, and file request blocks into CloudFiles datarooms. This comprehensive document provides step-by-step instructions for adding the action to a workflow and configuring its parameters. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The "Add to dataroom" action by CloudFiles enables you to insert files, folders and file request blocks to your CloudFiles datarooms using a workflow. These files & folders can be picked from any cloud storage such as Google Drive, SharePoint, OneDrive etc... Moreover, the file request block's destination folder can also be set using this action. Using this action multiple times can enable a host of use-cases related to dataroom sharing & requesting. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-add-to-dataroom/01.png) The "Add to dataroom" action can take in various types of parameters. The paramters can change based on previous selections. Here is a list of all parameters taken in by this action. 1. Dataroom ID: The ID of the dataroom where this addition needs to be done. This can be retrieved using the create dataroom action or hardcoded. 2. Type: Selector for whether you want to add file / folder or dataroom into the dataroom. 3. File Request Parameters:  Name, description and other parameters used to personalize the file request block being added to the dataroom. 4. Cloud Storage Parameters: These parameters are used to specify the source for file / folder or the destination of file request block in the respective cloud storage. There are various parameters required here. 5. Return Values: Various values returned by this action after execution. The sections below cover all the parameters in detail. ## 1 - Dataroom ID The dataroom ID is the parameter that identifies a dataroom to which the file / folder / file request block is to be added. Every dataroom created in CloudFiles has an ID associated with it. This ID can either be retrieved using the return values of the create dataroom action or from the CloudFiles Dashboard. If the dataroom was created using the same workflow, dataroom ID can be retrieved from the return value of the create dataroom action. This is useful for dynamic use-cases where dataroom is created by the workflow itself and can be different for each record. ![](https://media.help.cloudfiles.io/ha-add-to-dataroom/02.png) In cases where the additions are to be done in the same dataroom always, it's ID can be retrieved from the CloudFiles dashboard.  The steps are mentioned below - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io - Go to the Datarooms tab. - Either create a new dataroom here or click on the dataroom which is to be cloned. - In the address bar of your browser, you will find the dataroom ID. It should look something like this: 62629eb2c0d56a0230f75ab5 The dataroom ID is shown in the image below - ![](https://media.help.cloudfiles.io/ha-add-to-dataroom/03.png) ## 2 - Type This selector helps specify whether a file / folder or dataroom is being added to the dataroom. There are 2 available choices here. Content implies addition of file or folder into the dataroom. File Request implies addition of a file request block into the dataroom. Based on your selection here, parameters below will change. ![](https://media.help.cloudfiles.io/ha-add-to-dataroom/04.png) ## 3 - Library This parameter is visible if you select Content in the Type selector above. If you select File Request, this parameter becomes visible if a destination needs to be set. Library is the desired Cloud storage from where you want to add a file or folder from or where you want the file request block's upload to go to. Anything between CloudFiles, OneDrive, SharePoint, Box or Dropbox can be selected. Based on your choice, new parameters would become visible in the action. These are discussed in the sections below. ![](https://media.help.cloudfiles.io/ha-add-to-dataroom/05.png) ## 4 - Path to File / Folder This field is available for cases when cotnent is to be added. If you are trying to add a file or a folder, this is the field where you specify the path to that file or folder. Note that exact and full path must be provided here in order to add the file / folder correctly to the dataroom. The path to the file or folder can be copied from the metadata on the CloudFiles dashboard and then personalized using the record tokens. Follow the simple steps below - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io - Under the libraries tab, navigate to the file or folder that you are trying to add. - Copy the parameter from the meta data on the right side of the screen. Parameter from meta data is shown below - ![](https://media.help.cloudfiles.io/ha-add-to-dataroom/06.png) ## 5 - Shared Drive ID / Drive This is important for Google Drive & SharePoint library selection. Both these cloud storage have multiple drives where files can be stored. E.g. Google Drive has My Drive & Shared Drive while SharePoint can have multiple drives inside multiple sites. This parameter helps CloudFiles identify which drive to pick / push the file or folder from. The drive ID can be copied using the meta data in CloudFiles dashboard as shown in the steps in the Path to file / folder section above. ## 6 - File Request Name This is the name you wish to give your file request block. This name appears on the top of the request block when you share the dataroom with the customer. Usually it's a good practice to use personalization tokens or names of specific documents that the customer needs to upload here. As shown below, we prompt the user to upload passports here. ![](https://media.help.cloudfiles.io/ha-add-to-dataroom/07.png) ## 7 - File Request Description This is an optional field, used to describe your file request block. This is additional level of detail that you can give such as the specifications for the file uploads that must be done. We use this to tell the user that latest valid passport must be uploaded. ![](https://media.help.cloudfiles.io/ha-add-to-dataroom/08.png) ## 8 - File Request Destination This is Yes / No selector to specify whether you want to set a destination folder for the file request block. If set to yes, additional parameters will appear below to help set the destination folder. If set to No, the file will still show up and will be stored on CloudFiles server. ![](https://media.help.cloudfiles.io/ha-add-to-dataroom/09.png) ## 9 - Path to Destination Folder This field is available for cases when destination of the file request block needs to be set on a folder in some cloud storage. If you are trying to transfer the requested files to a specified location on cloud storage, this is the field where you specify the path to that folder. Note that exact and full path must be provided here in order to set the destination folder correctly. The folder path can be copied using the meta data in CloudFiles dashboard as shown in the steps in the Path to file / folder section above. ## 10 - Root Folder ID (Optional) If your folders are deeply nested, this optional parameter can help speed things up. Instead of searching through all the folders every time, which can slow things down, you can enter a specific Folder ID here to add the files uploaded via the dataroom to make the process easier. You don’t need to fill in the Drive ID or Path to Destination, as the files will be stored inside the root folder by default. Even if you want to add the files inside a specific subfolder, you can do so by adding a slash ( / ) followed by the subfolder name in the Path to Destination field. The purpose of the Root Folder parameter is to simplify the process, so you don’t have to enter the full path manually in such cases. If you need a Folder ID, you can find it in the CloudFiles Library metadata. > **Note** — Use this parameter only if you are sure how to use it; otherwise, leave it blank. ## 11 - Return Values The Add to Dataroom action returns the following values. These can be used in later actions to chain together actions and create complex automations. - Action Status- This is a success or failure message based on whether the action executed correctly. ![](https://media.help.cloudfiles.io/ha-add-to-dataroom/10.png) Need help? Book time with our team of experts. --- # Copy Resource Action https://help.cloudfiles.io/hubspot/copy-resource-action # Copy Resource Action Learn how to use the "Copy File" action by CloudFiles to easily duplicate and relocate files across various cloud storages. This comprehensive document covers the necessary parameters, such as library, source, destination, and renaming the file while copying. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The copy resource action by CloudFiles enables you to create copies of your files, which can be placed in folders on any cloud storages. E.g. you can create a copy of a file within SharePoint or even in a different cloud storage such as Google Drive. The action also also allows you to rename the file while copying it. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-copy-resource/01.png) The "Copy Resource" action takes in various parameters to specify the source & destination of the file. The parameters can change based on the library selected. 1. Library: The desired library where the file must be copied from (e.g. SharePoint, Google Drive etc...) 2. Path to File: The exact path to the file, including the file name and extension. There may be more than one parameters required to specify this path based on library selection. 3. Path to destination: The exact path to destination where the file must be copied. There may be more than one parameters required to specify this path based on library selection. 4. Return Values: Various values returned by this action after execution. ![](https://media.help.cloudfiles.io/ha-copy-resource/02.png) These parameters have been detailed in the sections below. ## 1 - Library The cloud storage from where the file is to be copied from. Anything between CloudFiles, OneDrive, SharePoint, Box or Dropbox can be selected. Based on your choice, new parameters would become visible in the action. These are discussed in the sections below. ![](https://media.help.cloudfiles.io/ha-copy-resource/03.png) ## 2 - Path to file This specifies the source from which the files must be picked. > **Note** — The Copy Resource action can also be used to clone Google Drive folders within HubSpot workflows. Note that this parameter must include the file name along with the extension. You can specify the full path using a simple '/' separated string with the file name at the end. The path to the folder can be copied from the metadata on the CloudFiles dashboard and then personalised using the record tokens. Follow the simple steps below - 1. Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io 2. Under the libraries tab, navigate to the file or folder that you are trying to add. 3. Copy the parameter from the meta data on the right side of the screen. These meta deta example is shown below - ![](https://media.help.cloudfiles.io/ha-copy-resource/04.png) ## 3 - Path to destination This specifies the destination where the files must be copied to. Note that this parameter must include the file name along with the extension. Thus you can specify a different file name and rename the file through this action. You can specify the full path using a simple '/' separated string with the file name at the end. The path to the folder can be copied from the metadata on the CloudFiles dashboard and then personalized using the record tokens. To copy the full folder path from metadata, follow the steps in the Path to File section above. ## 4 - Shared Drive ID / Drive This is important for Google Drive & SharePoint library selection. Both these cloud storage have multiple drives where files can be stored. E.g. Google Drive has My Drive & Shared Drive while SharePoint can have multiple drives inside multiple sites. This parameter helps CloudFiles identify which drive to pick / push the file. The drive ID can be copied using the meta data in CloudFiles dashboard as shown in the steps in the Path to file section above. ## 5 - Return Values The Copy Resource action returns the following values. These can be used in later actions to chain together actions and create complex automations. 1. Action Status - This is a success or failure message based on whether the action executed correctly. ![](https://media.help.cloudfiles.io/ha-copy-resource/05.png) Need help? Book time with our team of experts. --- # Create Attachment Action https://help.cloudfiles.io/hubspot/create-attachment-action # Create Attachment Action Learn how to use the "Create Attachment" action in HubSpot to effortlessly link files, folders, or datarooms with your HubSpot records. Discover the essential parameters needed, including target cloud storage and the resource to attach. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The create attachment action is used to associate files, folders or datarooms to HubSpot records. An attachment is a tile that appears on the CloudFiles widget in the sidebar on any HubSpot record which enables easy access to associated resources. Files & folders can even be attached automatically from cloud storage such as SharePoint, Dropbox, Google Drive etc... To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-create-attachment/01.png) The Create attachment action requires the following parameters in order to create the attachment - - Library-  This specifies the target cloud storage library such as Google Drive, SharePoint, OneDrive etc... - Library Dependent parameters- The parameters after library change based on the library selection. These parameters help specify the target file, folder or dataroom that must be attached to the record. ![](https://media.help.cloudfiles.io/ha-create-attachment/02.png) In the sections below, we detail each of the parameters that can appear in this action. ## 1 - Library Library is the desired Cloud storage from where you want to create a file, folder or dataroom attachment. For files and folders, anything between CloudFiles, OneDrive, SharePoint, Box or Dropbox can be selected. For dataroom attachments, you must select CloudFiles as the library. ![](https://media.help.cloudfiles.io/ha-create-attachment/03.png) Based on your choice, new parameters would become visible in the action. These are discussed in the sections below. ## 2 - Resource Type This parameter becomes visible when CloudFiles library is chosen. This is important for users who want to attach a dataroom to the record. The selector shows the type of resources that can be attached. Selecting dataroom in this selector helps the app identify that a dataroom needs to be attached. ![](https://media.help.cloudfiles.io/ha-create-attachment/04.png) ## 3 - Resource ID This parameter becomes visible when CloudFiles library is chosen. This is important for users who want to attach a dataroom to the record. If you have created a dataroom in this workflow using the Create Dataroom action, you can simply use the return value of that action in this parameter. This is shown below - ![](https://media.help.cloudfiles.io/ha-create-attachment/05.png) If instead you have an existing dataroom that you want to attach to all records, grab the dataroom ID from the CloudFiles dashboard and use it in the parameter. You can grab an existing dataroom ID using the steps below - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io - Go to the Datarooms tab. - Either create a new dataroom here or click on the dataroom which is to be cloned. - In the address bar of your browser, you will find the dataroom ID. It should look something like this: This is shown in the image below - ![](https://media.help.cloudfiles.io/ha-create-attachment/06.png) ## 4 - Shared Drive ID / Drive This is important for Google Drive & SharePoint library selection. Both these cloud storage have multiple drives where files can be stored. E.g. Google Drive has My Drive & Shared Drive while SharePoint can have multiple drives inside multiple sites. This parameter helps CloudFiles identify which drive to pick the file or folder from. In order to retrieve this Drive ID, follow the simple steps below - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io - Under the libraries tab, navigate to the file or folder that you are trying to attach. - Copy the parameter from the meta data on the right side of the screen. Meta data preview is shown in the image below - ![](https://media.help.cloudfiles.io/ha-create-attachment/07.png) ## 5 - Path to file or folder This field is available for all library selections. If you are trying to attach a file or a folder, this is the field where you specify the path to that file or folder. Note that exact and full path must be provided here in order to attach the file / folder correctly. The path to the file or folder can be simply copied from the meta data info in the CloudFiles Library using the same steps as specified in the shared drive ID section above. ## 6 - Root Folder ID (Optional) This is an optional parameter that can be used for optimization if you have very deep folder hierarchy. Instead of having the action search through the entire hierarchy every time which may cause slowness, you can specify a hard coded folder ID here. Along with this, you must also update the path you specified above such that the CloudFiles app will start the search for the file or folder from the root folder ID rather than the root of the cloud storage. The folder ID of any folder can be retrieved from the meta data info in the CloudFiles Library using the same steps as specified in the shared drive ID section above. > **Use this parameter only when you are absolutely sure you know how to use it, otherwise keep it blank.** — Keep this parameter empty if you are already using the full path to the folder in the previous paramter. This parameter is only meant to be an optimization in case you have a deep folder hierarchy and want to set a non-root folder as the base for searching for the path in the previous parameter. ## 7 - Return Values The Create Attachment action returns the following values. These can be used in later actions to chain together actions and create complex automations. - Action Status- This is a success or failure message based on whether the action executed correctly. - New Attachment ID- The ID of the newly created attachment. This can be used as the attachment ID in other actions such as share attachment ![](https://media.help.cloudfiles.io/ha-create-attachment/08.png) Need help? Book time with our team of experts. --- # Create Dataroom Action https://help.cloudfiles.io/hubspot/create-dataroom-action # Create Dataroom Action Learn how to create and clone datarooms using the CloudFiles "Create Dataroom" action. This document provides step-by-step instructions on setting up a file portal for organizing and linking multiple files and folders and requesting files from customers. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The CloudFiles "Create Dataroom" Action will help you create and clone datarooms. A dataroom is a file portal, where you can link multiple files & folders, organize them in groups and even request files from your customers. This addition of content and file request blocks can also be automated using the Add to Dataroom Action. In this article, we focus on the Create Dataroom action. This action lets you create empty datarooms or even clone existing dataroom templates using HubSpot workflows. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-create-dataroom/01.png) This action has 3 parameters that can be set as summarized below - 1. Dataroom name - The name that appears on the dataroom 2. Dataroom description - Additional description for conveying more information 3. Template Dataroom ID - Used for cloning an existing dataroom instead of creating one from scratch. 4. Return Values - Various values that are returned by this action and can be used in further actions for chaining. ![](https://media.help.cloudfiles.io/ha-create-dataroom/02.png) We detail each of these parameters below. ## 1 - Dataroom name This is the name you wish to give your cloned dataroom. This name appears on the top banner when you share a dataroom with the customer. Usually it's a good practice to use personalization tokens such as deal name or company name to create the dataroom name. As shown below, we use the Deal Name with some more text to create our final dataroom name. ![](https://media.help.cloudfiles.io/ha-create-dataroom/03.png) ## 2 - Dataroom description (Optional) This is an optional field, used to describe your dataroom. This is additional level of detail that you can give, maybe specifying the type of files that would be shared in this dataroom. We used a simple string along with deal personalization tokens to set this field up. ![](https://media.help.cloudfiles.io/ha-create-dataroom/04.png) ## 3 - Template Dataroom ID (Optional) This field is used in case you want to clone an existing dataroom. Cloning datarooms is useful if you have a set group structure, or some files & folders that you always want to share or some file request blocks that you always want to have in the dataroom. Cloning allows you to copy this structure into the new dataroom, thus avoiding the need to add everything from scratch. - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io - Go to the Datarooms tab. - Either create a new dataroom here or click on the dataroom which is to be cloned. - In the address bar of your browser, you will find the dataroom ID. It should look something like this: Dataroom ID is shown in the image below - ![](https://media.help.cloudfiles.io/ha-create-dataroom/05.png) Now we can use this dataroom ID in our workflow in the Template Dataroom ID field. This will prompt the action to clone an existing dataroom instead of creating it from scratch. ![](https://media.help.cloudfiles.io/ha-create-dataroom/06.png) ## 4 - Return Values The Create Dataroom action returns the following values. These can be used in later actions to chain together actions and create complex automations. 1. Action Status -  This is a success or failure message based on whether the action executed correctly. 2. New Dataroom ID - The ID of the newly created dataroom. This can be used as the resource ID for this dataroom, e.g. in the Create Attachment Action. ![](https://media.help.cloudfiles.io/ha-create-dataroom/07.png) Need help? Book time with our team of experts. --- # Create Folder Action https://help.cloudfiles.io/hubspot/create-folder-action # Create Folder Action Learn how to use the Create folder action by CloudFiles to automatically create folders in cloud storage platforms like Google Drive and SharePoint using HubSpot workflows. This action is versatile and can be combined with the Create Attachment action to build complex folder hierarchies. > Kind: Workflow action · Updated: Apr 30, 2026 The Create folder action by CloudFiles creates a folder in a desired destination on any cloud storage. This means you can automatically create folders in Google Drive, SharePoint, OneDrive etc... using standard HubSpot workflows. This also enables you to create complex folder hierarchies by using this action multiple times. You can use this action along with the Create Attachment action to auto-create folder attachments on your HubSpot records when they are created. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-create-folder/01.png) The Create folder action will require the following parameters: - Library - The desired library where the folder must go (e.g. SharePoint, Google Drive etc...) - Destination parameters-  Various parameters that specify where the folder will be created. These parameters can change after you select the library - Folder name- Final name of the folder that would be created through this action. ![](https://media.help.cloudfiles.io/ha-create-folder/02.png) In the sections below, we detail out each of the parameters that you can see in this action. ## 1 - Library Library is the desired Cloud storage from where you want to create the folder. For files and folders, anything between CloudFiles, OneDrive, SharePoint, Box or Dropbox can be selected. ![](https://media.help.cloudfiles.io/ha-create-folder/03.png) ## 2 - Shared Drive ID / Drive This is important for Google Drive & SharePoint library selection. Both these cloud storage have multiple drives where files can be stored. E.g. Google Drive has My Drive & Shared Drive while SharePoint can have multiple drives inside multiple sites. This parameter helps CloudFiles identify which drive to pick the file or folder from. In order to retrieve this Drive ID, follow the simple steps below - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to your CloudFiles storage. - Under the libraries tab, navigate to the file or folder that you are trying to attach. - Copy the parameter from the meta data on the right side of the screen. Parameters preview is shown in the image below - ![](https://media.help.cloudfiles.io/ha-create-folder/04.png) ## 3 - Path to destination This specifies the destination folder in which this new folder will be created. You can specify this using a simple '/' separated path. The path to the folder can be simply copied from the meta data info in the CloudFiles Library using the same steps as specified in the shared drive ID section above. ## 4 - Folder name This is the name you wish to give your newly created folder. Usually it's a good practice to use personalization tokens such as deal name or ID to create the folder name. This can help avoid duplicity. As shown below, we use the Deal Name & ID to create our final folder name. ![](https://media.help.cloudfiles.io/ha-create-folder/05.png) ## 5 - Root Folder ID (Optional) If your folders are deeply nested, this optional parameter can help speed things up. Instead of searching through all the folders every time, which can slow things down, you can enter a specific Folder ID here to make the process faster. You don’t need to fill in the Drive ID or Path to Destination, as they’re not required because the folders will be created inside the root folder by default. Even if you want to add the folder inside a specific subfolder, you can do so by adding a slash ( / ) followed by the subfolder name in the Path to Destination field. The purpose of the Root Folder parameter is to simplify the process, so you don’t have to enter the full path manually in such cases. If you need a Folder ID, you can find it in the CloudFiles Library metadata. > **Note** — Use this parameter only if you are sure how to use it; otherwise, leave it blank. ## 6 - Return Values The Create Folder action returns the following values. These can be used in later actions to chain together actions and create complex automations. - Action Status- This is a success or failure message based on whether the action executed correctly. ![](https://media.help.cloudfiles.io/ha-create-folder/06.png) Need help? Book time with our team of experts. --- # Delete Attachment (Workflow Action) https://help.cloudfiles.io/hubspot/delete-attachment # Delete Attachment The "Delete Attachment" action in CloudFiles allows you to automatically remove file/folder attachments from HubSpot records using workflows. This is helpful when there are too many files or folders attached, or when certain attachments are no longer needed. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The "Delete Attachment" action in CloudFiles allows you to automatically remove file/folder attachments from HubSpot records using workflows. This is helpful when there are too many files or folders attached in the CloudFiles widget, or when certain attachments are no longer needed. To use this action, make sure there is already an attachment linked to the record. You can do this in two ways: - Manually attach a file/folder to the record using the CloudFiles widget, or - Automatically create an attachment through a workflow if the file/folder/dataroom already exists. Once the attachment is in place, you can set up a workflow to trigger the Delete Attachment action based on your preferred conditions. For example, you might want to remove the attachment once a deal is closed, or if incorrect files were uploaded. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-delete-attachment/01.png) The "Delete Attachment" action in CloudFiles uses one parameter to identify the attachment to be deleted and provides a return value after the action is executed. - Attachments to Delete – This parameter accepts a single attachment ID or a list of attachment IDs that need to be deleted from the record. In the section below, we will discuss this attachment ID in detail and explore ways to get this. - Return Value – After the action runs, it returns the status of the deletion process, confirming whether the attachment was successfully deleted or if any errors occurred. ![](https://media.help.cloudfiles.io/ha-delete-attachment/02.png) ## 1  - Attachments to Delete The "Delete Attachment" action can only remove an attachment if it has the attachment details. To get these details, the action must be preceded by either the "Create Attachment" action or the "Get Attachment Details" action. Both these actions provide the Attachment ID in their return values, which can be used as input for the Delete Attachment action. If the attachment is being automatically created within the same workflow, the return value from the Create Attachment action can be directly used. However, if the attachment was created earlier, either manually or through another workflow, the Get Attachment Details Action should be used to fetch the Attachment ID. The screenshot below shows how both actions return the Attachment ID, which can then be passed to the Delete Attachment action to specify the file or folder that needs to be deleted. ![](https://media.help.cloudfiles.io/ha-delete-attachment/03.png) ## 2 - Return Values The Delete Attachment action returns the following values. These can be used in later actions to chain together actions and create complex automation. - Action Status- This is a success or failure message based on whether the action was executed correctly. ![](https://media.help.cloudfiles.io/ha-delete-attachment/04.png) --- # Delete Dataroom Action https://help.cloudfiles.io/hubspot/delete-dataroom-action # Delete Dataroom Action Learn how to use the Delete Dataroom action in CloudFiles to efficiently delete datarooms using HubSpot workflows. This action ensures that any files received but not transferred to an external cloud storage are removed along with the dataroom. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The Delete Dataroom action by CloudFiles allows you to delete datarooms using HubSpot workflows. A dataroom is a file portal, where you can store multiple files, folder and add file blocks for your viewers. The delete action will delete any files received and not transferred to an external cloud storage. However the action does not delete the files that have been received and transferred to an external storage. Moreover, the action also does not delete any files or folders that were added to the dataroom. Those can only be deleted through the library. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-delete-dataroom/01.png) The "Delete dataroom" action takes in only one parameter. It also returns some values that can be used in later actions. - Dataroom ID:- The ID of the dataroom which needs to be deleted. This needs to be either stored during creation or retrieved manually using the CloudFiles library. - Return Values:- Various values returned by this action after execution. ![](https://media.help.cloudfiles.io/ha-delete-dataroom/02.png) The sections below cover all the parameters in detail. ## 1 - Dataroom ID The Dataroom ID is the parameter that identifies a dataroom which needs to be deleted. Every dataroom created in CloudFiles has an internal ID associated with it. This ID can either be retrieved using the return values of the create dataroom action, get attachment details action or from the CloudFiles Dashboard. - From Create Dataroom Action- This action returns the ID of the newly created dataroom. You can store this ID in a HubSpot property associated with the record and use it later to delete the dataroom. - From Get Attachment Details Action- If the dataroom is already attached to the HubSpot record, you can also get the dataroom ID from the resource ID field of the Get Attachment Details action. This is one of the return values of the Get Attachment Details action. - From CloudFiles dashboard- This is usually not applicable in deletion use-cases. You can manually get the dataroom ID from the CloudFiles dashboard as shown in the steps of Create Dataroom Action's Template Dataroom ID parameter. In the graphic below, we are retrieving the Dataroom ID using the resource ID return value of the Get Attachment Details action. ![](https://media.help.cloudfiles.io/ha-delete-dataroom/03.png) ## 2 - Return Values The Delete Dataroom action returns the following values. These can be used in later actions to chain together actions and create complex automations. 1. Action Status -This is a success or failure message based on whether the action executed correctly. ![](https://media.help.cloudfiles.io/ha-delete-dataroom/04.png) Need help? Book time with our team of experts. --- # Delete Resource Action https://help.cloudfiles.io/hubspot/delete-resource-action # Delete Resource Action The "Delete Resource" action in CloudFiles allows you to remove files or folders from your cloud storage. For example, if a customer is no longer with your company and you want to delete their folder, you would use the "Delete Resource" action to do this. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The "Delete Resource" action in CloudFiles allows you to remove files or folders from your cloud storage. For example, if a customer is no longer with your company and you want to delete their folder, you would use the "Delete Resource" action to do this. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-delete-resource/01.png) ## Input Parameters The "Delete Resource" action takes in various parameters to specify the source & destination of the file. - Library: The desired library where the file must be moved (e.g. SharePoint, Google Drive etc...) - Path to Resource: The exact path to the file or the folder. There may be more than one parameters required to specify this path based on library selection. - Return Values: Various values returned by this action after execution. ![](https://media.help.cloudfiles.io/ha-delete-resource/02.png) These parameters have been detailed in the section below: ### 1 - Library The cloud storage from where the file is to be deleted from. Anything between CloudFiles, OneDrive, SharePoint, Box or Dropbox can be selected. Based on your choice, new parameters would become visible in the action. These are discussed in the sections below. ![](https://media.help.cloudfiles.io/ha-delete-resource/03.png) ### 2 - Path to Resource This specifies the source from where the files must be deleted. You can specify the full path using a simple '/' separated string with the file name at the end. The path to the folder can be copied from the metadata on the CloudFiles dashboard and then personalized using the record tokens. Follow the simple steps below - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io - Under the libraries tab, navigate to the file or folder that you are trying to add. - Copy the parameter from the meta data on the right side of the screen. These meta deta example is shown below - ![](https://media.help.cloudfiles.io/ha-delete-resource/04.png) ### 3 - Shared Drive ID / Drive This is important for Google Drive & SharePoint library selection. Both these cloud storage have multiple drives where files can be stored. E.g. Google Drive has My Drive & Shared Drive while SharePoint can have multiple drives inside multiple sites. This parameter helps CloudFiles identify which drive to delete the file. The drive ID can be copied using the meta data in CloudFiles dashboard as shown in the steps in the Path to resource section above. ## Return Values The Move Resource action returns the following values. These can be used in later actions to chain together actions and create complex automations. - Action Status - This is a success or failure message based on whether the action executed correctly. ![](https://media.help.cloudfiles.io/ha-delete-resource/05.png) --- # Generate Document Action https://help.cloudfiles.io/hubspot/generate-document-action # Generate Document Action The Generate Document action by CloudFiles allows you to automatically create documents using predefined templates within HubSpot workflows. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The Generate Document action by CloudFiles allows you to automatically create documents using predefined templates within HubSpot workflows. Using this action, documents can be dynamically generated based on HubSpot data within your templates and generate file can be stored directly in your connected cloud storage such as SharePoint, Google Drive, OneDrive or Dropbox To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? The Generate Document action requires several parameters to define how and where the document should be created. - Template ID: Specifies which template should be used for document generation - Destination Library: The desired library where the file must be saved to (e.g. SharePoint, Google Drive etc...) - Path to Destination Folder: The exact path to destination where the file must be saved to. There may be more than one parameters required to specify this path based on library selection. - Shared Drive ID / Drive: Required for storage providers like Google Drive & SharePoint - Convert to PDF: Determines the output format of the generated document - Return Values: Various values returned by this action after execution. ![](https://media.help.cloudfiles.io/ha-generate-document/01.png) These parameters have been detailed in the sections below. ### 1 - Template ID Each template created with CloudFiles has a unique Template ID that identifies it during automation. When the workflow runs, CloudFiles uses this ID to locate the correct template and generate the document based on the data available in the HubSpot record. The Template ID can be found on the Templates page in the CloudFiles web interface. ![](https://media.help.cloudfiles.io/ha-generate-document/02.png) ### 2 - Destination Library The Destination Library defines the cloud storage location where the generated document will be saved. CloudFiles supports multiple storage providers such as SharePoint, Google Drive, OneDrive and Dropbox. Depending on the selected library, additional parameters such as Drive ID may be required. ![](https://media.help.cloudfiles.io/ha-generate-document/03.png) ### 3 - Shared Drive ID / Drive This is important for Google Drive & SharePoint library selection. Both these cloud storage have multiple drives where files can be stored. E.g. Google Drive has My Drive & Shared Drive while SharePoint can have multiple drives inside multiple sites. This parameter helps CloudFiles identify which drive to choose for the generated file. ### 4 - Path to Destination Folder The Path to Destination Folder specifies the exact location within the selected cloud storage where the generated document will be saved. This path should be provided as a ’/’ separated string representing the folder structure. The folder path can be copied from the metadata section in the CloudFiles dashboard and can be personalized using HubSpot record tokens to dynamically organize generated documents based on records info. To copy Path to Destination Folder and Drive ID from CloudFiles dashboard, Follow the steps below: - Open CloudFiles dashboard- https://hubspot.cloudfiles.io/ and login if prompted. - Under the libraries tab, navigate to the folder where you want to save the generated document. - Copy the parameter from the metadata on the right side of the screen. ![](https://media.help.cloudfiles.io/ha-generate-document/04.png) ### 5 - Convert to PDF The Convert to PDF parameter determines the format in which the generated document will be saved. When enabled, the generated document will be automatically converted into PDF format. Otherwise, the document will be saved in the same format as the original template. ![](https://media.help.cloudfiles.io/ha-generate-document/05.png) ### 6 - Return Values The Generate Document action returns the following values. These can be used in later actions to chain together actions and create complex automations. - Action Status - This is a success or failure message based on whether the action executed correctly. ![](https://media.help.cloudfiles.io/ha-generate-document/06.png) --- # Get Attachment Details Action https://help.cloudfiles.io/hubspot/get-attachment-details-action # Get Attachment Details Action Learn how to use the "Get Attachment Details" action in CloudFiles to retrieve attachment details associated with a HubSpot record. Automate processes and perform actions based on attachment information such as the linked file, folder, or dataroom. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The Get Attachment details by CloudFiles receives the details of attachment(s) which can then be used in other actions to perform process automations. An Attachment is a association between a file / folder / dataroom & a HubSpot record. This association shows up as a tile on the right side of the HubSpot record in the CloudFiles Widget. Other attachment related workflow actions can help create attachments automatically & create sharing links of these attachments. In order to get an attachment's details, make sure that you already have an attachment on the triggering record. E.g. you can either trigger a workflow after someone has manually attached a file onto the record or you can automatically create an attachment if you have the file / folder / dataroom ready. ![](https://media.help.cloudfiles.io/ha-get-attachment-details/01.png) This action has only one parameter that can be set to specify the attachment for which the details need to be fetched. It returns a number of values that can be later used in other actions - - Attachments to Fetch - This is a selector to specify if only the latest attachment's details needs to be fetched or if details of all attachments need to be fetched. - Return Values- Status of action run along with a number of other parameters that can be used in later actions. ![](https://media.help.cloudfiles.io/ha-get-attachment-details/02.png) ## 1  - Attachments to Fetch A record can be associated to multiple files & folders. Since this action is only used to get the details of a pre-existing attachment on the triggering record. The Attachments to Fetch action provides a selector with these 2 choices. This has been shown in the graphic below. If you choose to return all attachment details, the return values of this action may contain comma separated lists. Thus, it is always advisable to just return one attachment's detail at a time. ![](https://media.help.cloudfiles.io/ha-get-attachment-details/03.png) ## 2 - Return Values The Get Attachment Details action returns the following values. These can be used in later actions to chain together actions and create complex automations. - Action Status- This is a success or failure message based on whether the action executed correctly. - Attachment ID- This is the internal ID of the attachment. This may be useful in use-cases such as creating the same attachment on another record by passing this attachment to it. - URL Slug- This is the final slug of the CloudFiles URL that was generated using this action. Slug may be important for usage in marketing & sales email automations - URL-  This is the complete CloudFiles URL that was generated using this action. - Cloud Storage URL- This is the internal Cloud Storage URL (e.g. the Google Drive link or the SharePoint Link) of the file or folder this attachment is associated to. - Resource Id- This is the internal ID (e.g. file ID or folder ID or dataroom ID) of the associated file / folder / dataroom. - Name- This is the name of the associated file / folder / dataroom. The file name will contain the extension as well. - Type- This specifies whether the attachment is associated to file, folder or dataroom - Status- This specifies whether the attached file / folder / dataroom is shared / not shared / offline etc... ![](https://media.help.cloudfiles.io/ha-get-attachment-details/04.png) Need help? Book time with our team of experts. --- # Get Resource Property Action https://help.cloudfiles.io/hubspot/get-resource-property-action # Get Resource Property Action The "Get Resource Property" action in CloudFiles retrieves the external URL and various metadata related to a file or folder stored in your cloud library. This is useful when you need to add the URL of a specific file or folder to a HubSpot custom object. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The "Get Resource Property" action in CloudFiles retrieves the external URL and various metadata related to a file or folder stored in your cloud library. This is useful when you need to add the URL of a specific file or folder to a HubSpot custom object. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-get-resource-property/01.png) ## Input Parameters The "Get Resource Property" action takes in various parameters to specify the source & destination of the file. - Library: The location where the file or folder URL needs to be extracted, such as SharePoint, Google Drive, or other storage platforms. - Path to Resource: The exact path to the file/folder. There may be more than one parameters required to specify this path based on library selection. - Property to get: The API name of property to be get. - List of Property Names: - name - gives the name of the resource - description - gives the description of the resource - id - gives the ID of the resource - driveId - gives the drive ID of the resource - library - gives the library that the resource is in - externalUrl - gives the cloud drive (SharePoint, Google Drive, etc.) URL of the resource - path - gives the path of the resource in the cloud drive - type - gives the type of resource (file/folder) - size - gives the size of the resource - createdAt - gives the date of creation of the resource (not present in dropbox - updatedAt - gives the date when the resource was last updated - extension - gives the extension of the resource 4. Return Values: Various values returned by this action after execution. ![](https://media.help.cloudfiles.io/ha-get-resource-property/02.png) These parameters have been detailed in the section below: ### 1 - Library Choose the cloud storage platform from which you want to extract the file or folder URL. You can choose from CloudFiles, OneDrive, SharePoint, Box, or Dropbox. Depending on your selection, additional parameters will appear in the action, which are explained in the sections below. ![](https://media.help.cloudfiles.io/ha-get-resource-property/03.png) ### 2 - Path to Resource: This defines the source from which the file or folder URL needs to be extracted. You can specify the full path using a simple '/' separated string with the file name at the end. The path to the folder can be copied from the metadata on the CloudFiles dashboard and then personalized using the record tokens. Follow the simple steps below - 1. Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io 2. Under the libraries tab, navigate to the file or folder that you are trying to add. 3. Copy the parameter from the meta data on the right side of the screen. This meta data example is shown below - ![](https://media.help.cloudfiles.io/ha-get-resource-property/04.png) ### 3 - Property to get In this parameter, specify “externalUrl” to retrieve the URL of the file or folder stored in Google Drive, SharePoint, or other storage platforms. ![](https://media.help.cloudfiles.io/ha-get-resource-property/05.png) ## Return Values The Move Resource action returns the following values. These can be used in later actions to chain together actions and create complex automation. 1. Action Status - This is a success or failure message based on whether the action is executed correctly. 2. Value (Boolean) - If the user prefers the output in a boolean format (yes/no), it will return the value accordingly. 3. Value (Date and Time) - If the user wants the output in date and time format, it will return the value accordingly. 4. Value (Date)- If the user requests the output in a date format, it will be returned accordingly. 5. Value (Number) - If the user requests the output as a number, it will be returned in that format. 6. Value (String) - If the user wants the output as a string in the form of an internal URL, the function will return the value accordingly. ![](https://media.help.cloudfiles.io/ha-get-resource-property/06.png) --- # How to get the folder, drive, site ID etc... required for automations? https://help.cloudfiles.io/hubspot/how-to-get-the-folder-drive-site-id-etc-required-for-automations # How to get the folder, drive, site ID etc... required for automations? Learn how to obtain drive ID, folder ID, folder path, or file path in HubSpot with this helpful guide. Access these parameters through the CloudFiles native app or directly from HubSpot to configure automations. > Kind: Guide · Updated: Jun 4, 2026 In this article, we will explain how to get the drive ID, folder ID, folder path or a file path for HubSpot users. These are generally required for automations related to HubSpot workflows. For HubSpot users, first go into the CloudFiles native app to access these parameters. You can either login into https://app.cloudfiles.io or use the simple steps below to go to the native app directly from HubSpot. Once you are in the native app, you can simply go to the desired folder or file and view the metadata info on the right side. This is shown in the image below - ![](https://media.help.cloudfiles.io/ha-how-to-get-ids/01.gif) Drive ID may be needed when selecting Library as Google Drive or SharePoint. Folder ID is usually needed when setting a root folder for optimization in various actions. File and folder paths are often needed for creating & maintaining desired hierarchies from HubSpot workflows. Need help? Book time with our team of experts. --- # Move HubSpot Files Action https://help.cloudfiles.io/hubspot/move-hubspot-files-action # Move HubSpot Files Action Learn how to use the "Move HubSpot Files" action by CloudFiles to seamlessly transfer files from HubSpot file manager to an external storage system. Perfect for situations where HubSpot forms are utilized to collect files that need to move to cloud storage. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The "Move HubSpot Files" action by CloudFiles enables you to move files stored in HubSpot file manager (such as the ones uploaded by through a HubSpot form) to an external storage system. This action is useful in scenarios where a HubSpot form is being used to collect files. If copying multiple files, each file copy is counted as 1 automation action. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-move-hubspot-files/01.png) The "Move HubSpot Files" action takes in various parameters. The parameters can change based on the library selected. 1. Files: The HubSpot property which contains a public link of the HubSpot file. E.g. the property field associated to HubSpot form's file input. 2. Library: The desired library where the file must go (e.g. SharePoint, Google Drive etc...) 3. Destination Parameters: Various parameters used to specify the destination folder in which these files must be copied to. 4. File Name: You can use this parameter if you want to rename file while moving it. Leaving it blank will copy the file with the same name as the original file. 5. Return Values: Various values returned by this action after execution. Includes the full file name and path where the file was uploaded to be used in later actions if needed. ![](https://media.help.cloudfiles.io/ha-move-hubspot-files/02.png) The sections below cover all the parameters in detail. ## 1 - Files This parameter helps specify the file(s) that need to be copied. The value should come from a HubSpot property which stores a publicly accessible HubSpot URL of the file. E.g. when adding a file upload box to a HubSpot form, a HubSpot property needs to be associated to it. When files are uploaded, this HubSpot property contains a publicly accessible URL of the file. It's also possible to copy multiple files at once. E.g. if multiple files are uploaded in the form, the property value will contain a semi-colon separated list of the URLs. Note that each file copy is counted as one automation action. If you need to rename the file or use the file name in further actions, it is advisable to copy one file in one action. We used a HubSpot form related property on our contact to supply to this parameter. ![](https://media.help.cloudfiles.io/ha-move-hubspot-files/03.png) ## 2 - Library The final cloud storage where you want to transfer these files to. Anything between CloudFiles, OneDrive, SharePoint, Box or Dropbox can be selected. Based on your choice, new parameters would become visible in the action. These are discussed in the sections below. ![](https://media.help.cloudfiles.io/ha-move-hubspot-files/04.png) ## 3 - Path to destination This specifies the destination folder in which the files must be copied. You can specify this using a simple '/' separated path. The path to the folder can be copied from the metadata on the CloudFiles dashboard and then personalized using the record tokens. Follow the simple steps below - 1. Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io 2. Under the libraries tab, navigate to the file or folder that you are trying to add. 3. Copy the parameter from the meta data on the right side of the screen. The meta data example is shown - ![](https://media.help.cloudfiles.io/ha-move-hubspot-files/05.png) ## 4 - Shared Drive ID / Drive This is important for Google Drive & SharePoint library selection. Both these cloud storage have multiple drives where files can be stored. E.g. Google Drive has My Drive & Shared Drive while SharePoint can have multiple drives inside multiple sites. This parameter helps CloudFiles identify which drive to pick / push the file or folder from. The drive ID can be copied using the meta data in CloudFiles dashboard as shown in the steps in the Path to destination section above. ## 5 - File name This is the name you wish to give your copied file. If left blank, the file will take it's original name. Usually it's a good practice to use personalization tokens such as deal name or ID or file type to create the file name. This can help avoid duplicity. As shown below, we use the Deal Name & ID to create our final file name. You don't need to specify the file extension here, CloudFiles picks it up automatically. ![](https://media.help.cloudfiles.io/ha-move-hubspot-files/06.png) ## 6 - Return Values The Move HubSpot Files action returns the following values. These can be used in later actions to chain together actions and create complex automations. 1. Action Status - This is a success or failure message based on whether the action executed correctly. 2. File Name - The full name along with the extension of the finally copied file. This may be comma separated if multiple files were uploaded at once. 3. Path to File - The full slash separated path of the finally copied file. This may be comma separated if multiple files were uploaded at once. ![](https://media.help.cloudfiles.io/ha-move-hubspot-files/07.png) Need help? Book time with our team of experts. --- # Move Resource Action https://help.cloudfiles.io/hubspot/move-resource-action # Move Resource Action The Move Resource action by CloudFiles is used to move the file from one destination to another destination. E.g. once the deal stage gets updated you want to update the location of the files stored in a cloud storage folder to another folder. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The Move Resource action by CloudFiles is used to move the file from one destination to another destination. E.g. once the deal stage gets updated you want to update the location of the files stored in any of your cloud storage folder to another folder, here the Move Resource flowaction comes into play. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-move-resource/01.png) ## Input Parameters The "Move Resource" action takes in various parameters to specify the source & destination of the file. - Library: The desired library where the file must be moved (e.g. SharePoint, Google Drive etc...) - Path to Resource: The exact path to the file, including the file name and extension. There may be more than one parameters required to specify this path based on library selection. - Path to destination: The exact path to destination where the file must be moved. There may be more than one parameters required to specify this path based on library selection. - Return Values: Various values returned by this action after execution. ![](https://media.help.cloudfiles.io/ha-move-resource/02.png) These parameters have been detailed in the section below: ### 1 - Library The cloud storage from where the file is to be moved from. Anything between CloudFiles, OneDrive, SharePoint, Box or Dropbox can be selected. Based on your choice, new parameters would become visible in the action. These are discussed in the sections below. ![](https://media.help.cloudfiles.io/ha-move-resource/03.png) ### 2 - Path to Resource: This specifies the source from where the files must be picked. You can specify the full path using a simple '/' separated string with the file name at the end. The path to the folder can be copied from the metadata on the CloudFiles dashboard and then personalized using the record tokens. Follow the simple steps below - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io - Under the libraries tab, navigate to the file or folder that you are trying to add. - Copy the parameter from the meta data on the right side of the screen. These meta deta example is shown below - ![](https://media.help.cloudfiles.io/ha-move-resource/04.png) ### 3 - Path to Destination This specifies the destination where the files must be moved to. Thus you can specify a different file name and rename the file through this action. You can specify the full path using a simple '/' separated string with the file name at the end. The path to the folder can be copied from the metadata on the CloudFiles dashboard and then personalized using the record tokens. To copy the full folder path from metadata, follow the steps in the Path to resource section above. ### 4 - Shared Drive ID / Drive This is important for Google Drive & SharePoint library selection. Both these cloud storage have multiple drives where files can be stored. E.g. Google Drive has My Drive & Shared Drive while SharePoint can have multiple drives inside multiple sites. This parameter helps CloudFiles identify which drive to pick / push the file. The drive ID can be copied using the meta data in CloudFiles dashboard as shown in the steps in the Path to resource section above. ## Return Values The Move Resource action returns the following values. These can be used in later actions to chain together actions and create complex automations. - Action Status - This is a success or failure message based on whether the action executed correctly. ![](https://media.help.cloudfiles.io/ha-move-resource/05.png) --- # Share Attachment Action https://help.cloudfiles.io/hubspot/share-attachment-action # Share Attachment Action Learn how to share attachments using HubSpot workflows with the "Share Attachment" action by CloudFiles. This action requires an existing attachment on the record and allows you to specify the attachment and recipient to generate a sharing link. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The "Share attachment" action by CloudFiles enables you to share attachments using HubSpot workflows. Sharing an attachment is exactly the same as manually creating a sharing link of a file / folder / dataroom from HubSpot record. In order to share an attachment, make sure that you already have an attachment made on the record. E.g. you can either trigger a workflow after someone has manually attached a file onto the record or you can automatically create an attachment if you have the file / folder / dataroom ready. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-share-attachment/01.png) This action has only one parameter that can be set to specify the attachment to be shared. It returns a number of values that can be later used in other actions - - Attachments to Share - This is a single / list of attachment IDs for which sharing links need to be created. In the section below, we discuss this attachment ID in detail and explore ways to getting this. - Return Values- Status of action run. URL and slug of the URL that was created using this action. ![](https://media.help.cloudfiles.io/ha-share-attachment/02.png) ## 1  - Attachments to Share Since the action "share attachment" is only used to share an attachment, it must be preceded by an action which can provide attachment details such as "Create Attachment action" or Get Attachment Details Action in their return values. Create Attachment's return value can be used when the attachment which is to be shared is being auto-created using the same workflow. Get attachment's return value should be used if the attachment was created previously, either manually or through another workflow. The screenshot below shows the return values of both create attachment & get attachment actions. Both actions return the "Attachment ID" field which can be used as a value for this parameter. ![](https://media.help.cloudfiles.io/ha-share-attachment/03.png) ## 2 - Return Values The Share Attachment action returns the following values. These can be used in later actions to chain together actions and create complex automations. - Action Status- This is a success or failure message based on whether the action executed correctly. - URL Slug- This is the final slug of the CloudFiles URL that was generated using this action. Slug may be important for usage in marketing & sales email automations. 3. URL- This is the complete CloudFiles URL that was generated using this action ![](https://media.help.cloudfiles.io/ha-share-attachment/04.png) Need help? Book time with our team of experts. --- # Update Link Settings Action https://help.cloudfiles.io/hubspot/update-link-settings-action # Update Link Settings Action Learn how to update the settings of your CloudFiles links with the "Update Link Settings" action. This comprehensive document explains the various options available, including disabling downloads, setting expiry dates, and enforcing email verification. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction Update Link Settings action by CloudFiles updates the settings of the CloudFiles links created in your records. The settings include disabling downloads, expiry settings, enforcing email verification etc... This action can be used to apply security policies on your created links. E.g. if none of the shared collateral is to be downloaded, you can disable downloads on any shared collateral whose link is created through HubSpot. Note that for this action to work, you must already have a link created for a file / folder / dataroom on the trigegring record. This can either be done using the Share Attachment action (for automation use-cases) or by triggering a workflow when ever someone manually attaches a file or creates a link on the record (manual use-case). ![](https://media.help.cloudfiles.io/ha-update-link-settings/01.png) The Update link settings takes in a number of parameters. It also returns a few values that can be used in later actions - - Links to Update:- This is selector to specify whether only the latest created link on the record must be updated or all links shared from the record must be updated. - Disable Downloads:- Yes / No selector for disabling download on the file - Expiry Settings:- Various parameters to specify the expiry of the link based on date or number of views. - Email Collection & Authentication:-Specify whether the viewer must enter their email and authenticate with it. Add allow / block list. - Return Values:- Various values returned by this action after execution. ![](https://media.help.cloudfiles.io/ha-update-link-settings/02.png) We discuss each of the parameters in this action in detail below. ## 1 - Links to update This parameter is used to choose which links are to be updated. As mentioned above, sharing links must have been created before using this action. This can either be done automatically using Share Attachment action or manually by attaching a file which triggers a workflow. The parameter helps you choose whether to update all links or only the latest link created on this record. 1. Latest : Choosing "Latest" will update only the latest link created on this record. The rest of the links (if any) would stay the same. 2. All : Choosing "All", will update all the links on the record. It won't make a difference if there is just one link on the record. ![](https://media.help.cloudfiles.io/ha-update-link-settings/03.png) ## 2 - Disable Downloads If you disable download on your link, the viewer won't be able to download / print the file. Thus, this lets you prevent unauthorized distribution of the file and collect reliable analytics about it. You can choose either a yes or a no on this selector. 1. Yes : Choosing "Yes" means the download would be disabled and viewers won't be able to download / print the file. 2. No : Choosing "No" means download will stay enabled, i.e. users will see a download button through which they can download the file. ![](https://media.help.cloudfiles.io/ha-update-link-settings/04.png) ## 3 - Expires On This sets the date and time till when the file can be viewed. Once the time has expired, the viewers would see a 'file not available' message on the shared link. A common use-case is to set the expiry of links to X months after today, thus only sharing it for a pre-defined interval of time. ![](https://media.help.cloudfiles.io/ha-update-link-settings/05.png) ## 4 - Expires after This sets the maximum number of views of your file. After that many views, the link will expire and the viewers would see a 'file not available' message on the shared link. A common use-case is to share a one-time view coupon code or promotion. ![](https://media.help.cloudfiles.io/ha-update-link-settings/06.png) ## 5 - Require Email for accessing the link This is a Yes / No selector to specify whether you want the viewer to enter their email while accessing the link. If you choose to collect the email, your GDPR and consent settings (if set in the CloudFiles Admin dashboard) will automatically be applied. Note that collecting email does not necessarily mean collecting valid emails. For that, check the sections below. 1. Yes : This enables a email wall, and requires users to enter an email to access the file. Users can login through Google / Microsoft as well. Users can also enter the email in a text box and view the document. 2. No : This removes the email wall, and users can access the file without entering email. ![](https://media.help.cloudfiles.io/ha-update-link-settings/07.png) ## 6 - Enforce email verification Enforcing email verification implies that the user will either need to login through google, outlook or use an email OTP to access the link. This ensures that only authenticated emails are entered into the email box. This parameter is a Yes/No selector for setting the email authentication. 1. Yes : This will force users to enter OTP from their inbox to ensure genuine email ids are entered or login through google / outlook. 2. No : This does not require users to enter OTP or verify the email in any way. They can still login through google / outlook or simply enter an email to view the document. ![](https://media.help.cloudfiles.io/ha-update-link-settings/08.png) ## 7 - Allowed Emails Using this parameter, you can specify a list of emails which would be added into the allow list of the link. If the user enters one of these emails, only then they would be able to view the document. Using this feature along with email authentication can create a login like experience for your clients to view the files. This parameter is a selector that can take the following 3 values - 1. All Contact Emails - If triggering on a deal or company record, all the associated contacts of that record would be added as emails to the list. 2. Enter Manually - You can manually enter the emails using this selection. 3. Association Label - You can select a subset of the associated contacts by filtering them using a HubSpot association label ![](https://media.help.cloudfiles.io/ha-update-link-settings/09.png) ## 8 - Return Values The Update Link Settings action returns the following values. These can be used in later actions to chain together actions and create complex automations. 1. Action Status - This is a success or failure message based on whether the action executed correctly. ![](https://media.help.cloudfiles.io/ha-update-link-settings/10.png) Need help? Book time with our team of experts. --- # Update Resource Permissions Action https://help.cloudfiles.io/hubspot/update-resource-permissions-action # Update Resource Permissions Action The "Update Resource Permission" action by CloudFiles allows you to manage access to files or folders by specifying email addresses. You can grant or revoke access to a particular file or folder, for example when a deal owner changes. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The "Update Resource Permission" action by CloudFiles allows you to manage access to files or folders by specifying email addresses. You can grant or revoke access to a particular file or folder. For example, if a deal stage is updated, you can use this action to update access so that only the deal owner has permission. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-update-resource-permissions/01.png) ## Input Parameters The "Update Resource Permission" action takes in various parameters to specify the source & destination of the file. - Library: The specific location where the file or folder access needs to be updated (e.g., SharePoint, Google Drive, etc.). - Path to Resource: The exact path to the file/folder. There may be more than one parameters required to specify this path based on library selection. - Action: You can grant or remove access to a file or folder. - Permission: Choose whether the access should be read-only or include permission to make changes. - Emails: Enter the email addresses of the people who should be given access. ![](https://media.help.cloudfiles.io/ha-update-resource-permissions/02.png) These parameters have been detailed in the section below: ### 1 - Library Select the cloud storage platform from which the file or folder's access needs to be updated. You can choose from CloudFiles, OneDrive, SharePoint, Box, or Dropbox. Depending on your selection, additional parameters will appear in the action, which are explained in the sections below. ![](https://media.help.cloudfiles.io/ha-update-resource-permissions/03.png) ### 2 - Path to Resource: This specifies the source from where the files/folder’s access need to be updated. You can specify the full path using a simple '/' separated string with the file name at the end. The path to the folder can be copied from the metadata on the CloudFiles dashboard and then personalized using the record tokens. Follow the simple steps below - 1. Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io 2. Under the libraries tab, navigate to the file or folder that you are trying to add. 3. Copy the parameter from the meta data on the right side of the screen. These meta data example is shown below - ![](https://media.help.cloudfiles.io/ha-update-resource-permissions/04.png) ### 3 - Action In this parameter, specify whether you want to grant or revoke access to the specified file or folder for the given email addresses. ![](https://media.help.cloudfiles.io/ha-update-resource-permissions/05.png) ### 4 - Permission In this parameter, if you choose the action as "Grant" then this parameter will show up. Choose the type of access you want to grant to users. If you want users to only view the file or folder, select "read." If you want them to be able to make changes, select "write.” ![](https://media.help.cloudfiles.io/ha-update-resource-permissions/06.png) ### 5 - Emails In this parameter, you can manually enter email addresses separated by commas, use email IDs associated with specific labels, grant access to all contact emails linked to a particular HubSpot object, or allow everyone to access the file or folder. ![](https://media.help.cloudfiles.io/ha-update-resource-permissions/07.png) ## Return Values The Move Resource action returns the following values. These can be used in later actions to chain together actions and create complex automations. 1. Action Status - This is a success or failure message based on whether the action executed correctly. ![](https://media.help.cloudfiles.io/ha-update-resource-permissions/08.png) --- # Update Resource Action https://help.cloudfiles.io/hubspot/update-resource-action # Update Resource Action The "Update Resource" action in CloudFiles allows you to update metadata, such as renaming files and folders or adding descriptions. It is very useful when you want to update custom columns in SharePoint. > Kind: Workflow action · Updated: Jun 4, 2026 ## Introduction The "Update Resource" action in CloudFiles allows you to update metadata, such as renaming files and folders or adding descriptions. It is very useful when you want to update custom columns in SharePoint. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? ![](https://media.help.cloudfiles.io/ha-update-resource/01.png) ## Input Parameters The "Update Resource" action takes in various parameters to specify the source & destination of the file. - Library: The location where the file/folder name or description needs to be updated, such as in SharePoint, Google Drive, or other storage platforms. - Path to Resource: The exact path to the file/folder. There may be more than one parameters required to specify this path based on library selection. - Property to update: The API name of property to be updated. - Value: The updated name or description of the file or folder. - Return Values: Various values returned by this action after execution. ![](https://media.help.cloudfiles.io/ha-update-resource/02.png) These parameters have been detailed in the section below: ### 1 - Library Select the cloud storage platform from which the file or folder's name/description needs to be updated. You can choose from CloudFiles, OneDrive, SharePoint, Box, or Dropbox. Depending on your selection, additional parameters will appear in the action, which are explained in the sections below. ![](https://media.help.cloudfiles.io/ha-update-resource/03.png) ### 2 - Path to Resource: This specifies the source from where the files/folder’s name/description needs to be updated. You can specify the full path using a simple '/' separated string with the file name at the end. The path to the folder can be copied from the metadata on the CloudFiles dashboard and then personalized using the record tokens. Follow the simple steps below - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to app.cloudfiles.io - Under the libraries tab, navigate to the file or folder that you are trying to add. - Copy the parameter from the metadata on the right side of the screen. This meta data example is shown below - ![](https://media.help.cloudfiles.io/ha-update-resource/04.png) ### 3 - Property to update In this parameter, specify "name" when renaming a file or folder. Similarly, for Google Drive, enter "description" when updating the description. The API name of the column is required if you want to update columns in SharePoint. ![](https://media.help.cloudfiles.io/ha-update-resource/05.png) ### 4 - Value In this parameter, enter the new name for the file or folder you want to rename. Similarly, for the description, provide the updated description in the respective field. ![](https://media.help.cloudfiles.io/ha-update-resource/06.png) ## Return Values The Move Resource action returns the following values. These can be used in later actions to chain together actions and create complex automations. - Action Status - This is a success or failure message based on whether the action was executed correctly. ![](https://media.help.cloudfiles.io/ha-update-resource/07.png) --- # Workflow Triggers & List Filters https://help.cloudfiles.io/hubspot/workflow-triggers-and-list-filters # Workflow Triggers & List Filters Learn how to automate tasks using CloudFiles, create powerful automations with the file viewed event, and effectively trigger workflows and filter contacts based on file views in HubSpot. This collection covers CloudFiles Events and CloudFiles Properties available for workflow automation. > Kind: Guide · Updated: Jul 8, 2026 Collection of articles related to workflow triggers & list filters. - All CloudFiles Events: This section is about CloudFiles Events that track actions like file views, uploads, attachments, and link creations. These events capture detailed metadata and can be used in HubSpot contact-based workflows. - All CloudFiles Properties: This section is about CloudFiles Properties that automatically updates in HubSpot based on file views, uploads, and attachments. These properties like last viewed resource, total views, and files received can trigger workflows in company, deal, or ticket records. - Filtering Lists - In this article, we explain how integrating CloudFiles with HubSpot enhances list filtering by adding document interaction metrics, enabling more precise segmentation across contacts, companies, deals, and tickets. - Workflow Triggers: This section is about setting up CloudFiles workflow triggers in HubSpot based on document interactions or property changes. It covers event-based triggers and property-based triggers. --- # All CloudFiles Events https://help.cloudfiles.io/hubspot/all-cloudfiles-events # All CloudFiles Events The CloudFiles Events track actions related to files, folders, and datarooms, providing details on when and how they are accessed, shared, or attached. > Kind: Guide · Updated: Jun 4, 2026 The CloudFiles Events track actions related to files, folders, and datarooms, providing details on when and how they are accessed, shared, or attached. - File-viewed Event logs when a shared file is opened. It records the number of views, the percentage of content read, the total time spent, and the number of downloads. It also captures the date of access and link details, including the name and URL. - File Received tracks when a file is uploaded to a dataroom. It includes the file name, the associated file request block, and the date it was received. - Resource Attached records when a file, folder, or dataroom is linked to a record. It captures the resource name, type, and the date it was attached. - Link Created logs when a shareable link is generated for a file, folder, or dataroom. It includes the link name, type, and creation date. These events help monitor file interactions, maintain accurate records, and track how shared content is accessed and managed. ## 1. File-viewed Event ### About The File-viewed event records details when someone opens and interacts with a shared file. It tracks how much of the file was read, how many times it was viewed, the total time spent, the number of downloads, the access date, and the link used to view the file. This helps in understanding file usage and user engagement. ![](https://media.help.cloudfiles.io/wt-all-events-hs/01.png) ### Properties ### i) Content Coverage This shows the percentage of the file that was read. For example, if a file has 10 pages and only 1 page is read, the value is 10%. If the user scrolls to the last page without reading, it still shows 100%. ### ii) Link Name This is the name of the shared link. In HubSpot, the link name usually matches the name of the associated HubSpot record. In the CloudFiles web app, users can name the link however they like. ### iii) Link URL This is the web address of the shared file. The URL differs between HubSpot and the CloudFiles web app, even if the file is the same. ### iv) Number of Downloads This shows how many times the file was downloaded. For example, if a whitepaper is downloaded more than five times by one contact, a workflow can assign a lead nurturing task to the marketing team. ### v) Number of Views This is the total number of times the file was accessed. If a case study is viewed multiple times by a contact, a workflow can enroll them in a relevant campaign. ### vi) Occurred This is the date when the file was viewed. For example, scheduling follow-ups based on this date allows actions like sending a thank-you email a day after a demo video is watched. ### vii) Resource Name This is the name or title of the file that was accessed. A workflow can notify the product team when a specific file like "Beta_Features_Guide" is viewed, so they can prepare for feedback. ### viii) Time Spent (in seconds) This shows how long the file was viewed, measured in seconds. If a prospect spends over 300 seconds on a pricing document, they can be moved to a priority lead list. ### ix) Total Views This is the total number of times the file has been accessed across all sessions. The number can vary between the same file shared via different links in HubSpot and the CloudFiles web app, since the links are different. ## 2. File Received ### About The File Received event is recorded when someone uploads a file to a dataroom. It captures the file name, the request block it was submitted to, and the date it was received. This helps in tracking document submissions. ![](https://media.help.cloudfiles.io/wt-all-events-hs/02.png) ### Properties ### i) Dataroom Name This is the name of the dataroom where the file was uploaded. Workflows can use this to notify teams, such as alerting the compliance team when documents are added to a specific dataroom. ### ii) File Name This is the name of the uploaded file. It can be used in workflows or communications to refer to the received document. ### iii) File Request Name This is the name of the request block where the file was submitted. It can be used in HubSpot workflows to filter or trigger actions based on the request source. ### iv) Occurred This is the date the file was received in the dataroom. It can trigger actions or notifications in HubSpot workflows when a file is received. ## 3. Resource Attached ### About The Resource Attached event is recorded when a file, folder, or dataroom is attached to a HubSpot record. This helps in keeping a record of shared resources. ![](https://media.help.cloudfiles.io/wt-all-events-hs/03.png) ### Properties ### i) Name This is the name of the file, folder, or dataroom that was attached. For example, if a file named "Contract_Template" is attached to a deal, a workflow can notify the legal team. ### ii) Occurred This is the date when the resource was attached. This can be used to schedule follow-ups, such as setting a review meeting a week after a proposal is attached. ### iii) Tags This property is not currently used in workflows. ### iv) Type This shows whether the attached resource is a file, folder, or dataroom. Different workflows can be triggered based on the type—for example, prompting the team to review content when a folder is attached or reviewing content when a file is added. ## 4. Link Created ### About The Link Created event captures when a shareable link is generated for a file, folder, or dataroom. It includes the link name, type, and the date it was created. ![](https://media.help.cloudfiles.io/wt-all-events-hs/04.png) ### Properties ### i) Name This is the name of the link created for the file, folder, or dataroom. For example, if a link named "Product_Brochure_Q1" is created, a workflow can trigger a follow-up task for the sales team. ### ii) Occurred This is the date when the link was created. For instance, if the file is viewed on a certain date, you can schedule a follow-up email for the next day. ### iii) Type This shows whether the link was created for a file, folder, or dataroom. For example, when a dataroom is created, a task can be assigned to a project manager to review its contents. Thus, this event helps track the creation of shareable links, ensuring transparency and better control over shared content. --- # All CloudFiles Properties https://help.cloudfiles.io/hubspot/all-cloudfiles-properties # All CloudFiles Properties Describes the five CloudFiles properties that auto-track file uploads, views, and attachments on HubSpot records for use in workflows. > Kind: Guide · Updated: Jun 4, 2026 In this article, we have explained the five CloudFiles properties that automatically track and update important information about file uploads, views, and attachments. Each one of them updates automatically based on user actions and can be used in workflows to assist with internal processes. ![](https://media.help.cloudfiles.io/wt-all-properties-hs/01.png) ## 1.Last Received File Request Name ### About This property reflects the name of the most recent file request block in which the file was uploaded in the dataroom. It updates automatically when a client uploads a file through a file request block of a dataroom linked to a HubSpot record. ### Use Case For example, this property can be used when a new file is uploaded via a specific file request block in the dataroom, a workflow can be triggered using this property to update the associated record's status, notify the responsible team member, and log the file for tracking purposes. ## 2. Last viewed resource ### About This indicates the most recently accessed file, folder, or dataroom linked to a HubSpot record. It updates each time a user views a resource through a CloudFiles link. ### Use Case For example, set up a workflow that activates when a contact views a shared resource. This can automatically update the contact's engagement score, move them to a targeted list for follow-up, or send a personalised email based on the specific resource viewed. ## 3. Number of Files Received ### About This property counts the total number of files uploaded via file request blocks of the dataroom links associated with a HubSpot record. It increments with each successful file upload and can be viewed on the left-hand side of the relevant HubSpot record. ### Use Case For example, create a workflow that monitors the number of files received in a dataroom attached to a particular company or deal. Once a predefined threshold is met (e.g., all required documents are submitted), the workflow can progress the deal to the next stage and assign tasks to team members ## 4. Number of Resources Attached ### About This denotes the total number of files, folders, or datarooms linked to a specific HubSpot record using CloudFiles. It updates whenever a new resource is attached however, the number does not decrease when the attachment is removed from the record. ### Use Case For example, one can design a workflow that triggers when new resources are attached to a record. This can prompt internal notifications, or initiate subsequent actions such as sharing the resources with stakeholders or updating documentation. ## 5. Total views ### About This metric shows the cumulative number of times all CloudFiles resources linked to a HubSpot record have been viewed. It increases with each view, including multiple views by the same user, and can be found in the analytics section of the CloudFiles widget on the record. ### Use Case For example, establish a workflow that triggers when the total number of views on a document surpasses a certain view count, which can then alert the sales team to increased interest, prompting timely follow-ups or tailored outreach strategies. Thus, these properties track basic file and resource activity within HubSpot. They can be used with workflows to automate common tasks and keep records up to date based on actions like file uploads and views. --- # Filtering Lists https://help.cloudfiles.io/hubspot/filtering-lists # Filtering Lists HubSpot's list filtering enhanced by CloudFiles document interaction metrics for segmenting contacts, companies, deals, and tickets. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction HubSpot's list filtering capabilities enable users to segment data across contacts, companies, deals, and tickets based on specific criteria. Integrating CloudFiles enhances these capabilities by introducing document interaction metrics, allowing for more detailed segmentation based on file engagement. ## CloudFiles Events CloudFiles integrates with HubSpot to provide event-based filters, particularly for the Contact object. These events capture interactions with shared documents, enabling more precise segmentation and automation. ### 1. File Viewed Tracks when a contact views a shared document, recording metrics such as time spent, number of views, and percentage of content viewed. ### 2. File Received Logs when a contact uploads files via a file request, noting details like the dataroom name and number of files received. ### 3. Resource Attached Records when a resource is attached to a record, capturing information such as resource name, type, and associated tags. ### 4. Link Created Captures the creation of new document links, including the link name, type, and creation timestamp. For a comprehensive overview of all CloudFiles events and their applications within HubSpot, please refer to the All CloudFiles Events article. ### Use Cases for Filtering Lists Using CloudFiles Events For instance, utilizing the File Viewed event allows identification of contacts who have engaged with specific documents. By filtering contacts who viewed a particular file and setting conditions such as "Time Spent (In Seconds)" greater than a specific threshold, or using "Number of Views" to gauge repeated engagement, one can create a list of highly engaged contacts for targeted follow-ups. Similarly, the File Received event can track contacts who have submitted required documents. By filtering contacts based on the "File Request Name" they responded to and using "Number of Files Received" to ensure all necessary documents are submitted, it's possible to maintain a list of contacts who have completed document submissions. ## CloudFiles Properties Beyond event-based filters, CloudFiles introduces properties that can be used for segmentation across Companies, Deals, and Tickets in HubSpot. These properties are automatically updated based on document interactions . ### 1.Last Received File Request Name: Identifies the most recent file request name in which the file was received. ### 2.Last Viewed Resource Indicates the last resource(file/folder/dataroom) viewed by the associated record. ### 3.Number of Files Received Total files received from the associated record. ### 4.Number of Resources Attached Count of resources attached to the record. ### 5.Total Views Aggregate views of resources associated with the record. For a comprehensive overview of all CloudFiles properties and their applications within HubSpot, please refer to the All CloudFiles Properties article. ### Use Cases for Filtering Lists Using CloudFiles Properties 1. Monitoring Document Submission Status When managing processes that require clients to submit specific documents such as compliance forms or onboarding materials, it's crucial to track who has provided the necessary files. By creating a list that filters records based on the "Last Received File Request Name" property, you can identify which clients have submitted the required documents. This list enables your team to follow up with those who haven't completed their submissions, ensuring timely compliance and efficient onboarding. 2. Identifying Recent Engagement with Resources Understanding which resources your clients or prospects have recently engaged with can inform your follow-up strategies. By filtering records based on the "Last Viewed Resource" property, you can create a list of contacts who have recently viewed specific documents. This insight allows your team to tailor communications and provide relevant information that aligns with the client's current interests. Thus, using CloudFiles filters in HubSpot lists provides teams with a practical way to organize and act on document engagement data. Whether tracking which contacts viewed key documents or identifying records with recent file submissions, these filters make it easy to surface relevant segments. --- # Workflow Triggers https://help.cloudfiles.io/hubspot/workflow-triggers # Workflow Triggers CloudFiles extends HubSpot workflow triggers with file-related event-based and property-based triggers to automate lead nurturing and follow-ups. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction In HubSpot, workflow triggers are conditions that, when met, initiate a predefined sequence of actions. CloudFiles extends this functionality by allowing workflows to be triggered based on specific file-related events or changes in file-related properties. For example, when a contact views or downloads a document, a workflow can be triggered to follow up with that contact. This automation streamlines processes such as lead nurturing and sales follow-ups. ## Types of Workflow Triggers CloudFiles offers two types of workflow triggers: ### 1.Event-Based triggers: CloudFiles event-based triggers are triggered by specific actions taken by users concerning documents. CloudFiles supports the following event-based triggers: - File Viewed Event: Can be used as a trigger when a contact views/downloads a document. - File Received Event: Can be used as a trigger when a file is uploaded to a dataroom. - Resource Attached Event: Can be used as a trigger when a file, folder, or dataroom is linked to a record. - Link Created Event: Can be used as a trigger when a shareable link is generated for a file, folder, or dataroom. These triggers are applicable to contact-based workflows in HubSpot. For instance, when a contact views a pricing document, a workflow can be triggered to notify the sales team. To learn more about CloudFiles Events, visit our detailed guide: All CloudFiles Events ### 2.Property-Based Triggers: CloudFiles property-based triggers rely on specific property values within HubSpot records. CloudFiles updates certain properties based on document interactions, which can then be used to trigger workflows. - Last Received File Request Name: Reflects the name of the most recent file request block in which the file was uploaded in the dataroom. - Last Viewed Resource: Indicates the most recently accessed file, folder, or dataroom linked to a HubSpot record. - Number of Files Received: Counts the total number of files uploaded via file request blocks of the dataroom links associated with a HubSpot record. - Number of Resources Attached: Denotes the total number of files, folders, or datarooms linked to a specific HubSpot record using CloudFiles. - Total Views: Shows the cumulative number of times all CloudFiles resources linked to a HubSpot record have been viewed. These properties can be utilised across various HubSpot objects, including companies, deals, and tickets. For example, a workflow can be set to trigger when a deal record shows that a document has been downloaded more than five times, indicating high interest. To learn more about CloudFiles Properties, visit our detailed guide:All CloudFiles Properties ## Triggers with Events CloudFiles event-based triggers are used when immediate action is required following a user's interaction with a document, such as viewing, downloading, or uploading it. In this section, we will discuss a few use cases where event-based triggers can be effectively applied. ### Examples: - Prioritize Hot Leads Based on Document Engagement: Trigger a workflow when the Time Spent (in seconds) property from the File-viewed event shows that a prospect spent over 5 minutes (300 seconds) on a pricing sheet, automatically moving them to a "Hot Lead" list and alerting the assigned salesperson for immediate follow-up. - Auto-Validate Client Submissions for Onboarding: Trigger a workflow when the File Request Name from the File Received event indicates that a client has uploaded a signed "Service Agreement" document, automatically creating a task for the onboarding specialist to start the client setup process. - Kickoff Deal Review After Proposal Attachment: Trigger a workflow when the Resource Name property from the Resource Attached event matches "Final_Proposal.pdf", automatically notifying the sales manager and scheduling an internal deal review meeting within two business days. CloudFiles supports these triggers by tracking document interactions and integrating the captured data into HubSpot workflows. ## Triggers with Properties CloudFiles property-based triggers are effective for managing processes that depend on the state or value of specific record properties. In this section, we will discuss a few use cases where property-based triggers can help automate internal processes. ### Examples: - Client Onboarding Notifications: When the "Number of Files Received" reaches a specified count, trigger a workflow to notify the assigned team member that all required documents have been submitted. - Sales Engagement Alerts: Utilise the "Last Viewed Resource" or "Total Views" properties to detect when a prospect engages with shared content, prompting a workflow that alerts the sales representative for timely follow-up. - Internal Collaboration Updates: Monitor the "Number of Resources Attached" property to trigger workflows that notify internal stakeholders whenever new resources are linked to a record, ensuring everyone stays informed. Using property-based triggers allows for structured automation that aligns with predefined business processes. Thus, CloudFiles enhances HubSpot workflows by introducing two types of triggers: event-based triggers, which respond to specific document interactions like views or uploads, and property-based triggers, which monitor changes in document-related properties. Implementing these triggers allows for automation of tasks such as lead follow-ups and client onboarding, streamlining business processes. --- # Document Management (Document Management) https://help.cloudfiles.io/hubspot/document-management # Document Management Document Management by CloudFiles brings your external file storage directly into HubSpot so teams can access, organise, and manage files without leaving the CRM. From HubSpot records, users can link files and folders, work with connected libraries, and keep content aligned with the records they support. > Kind: Guide · Updated: Jul 8, 2026 Document Management by CloudFiles brings your external file storage directly into HubSpot so teams can access, organise, and manage files without leaving the CRM. From HubSpot records, users can link files and folders, work with connected libraries, and keep content aligned with the records they support. This guide provides a complete overview of setting up CloudFiles Document Management in HubSpot and understanding the key features available to streamline your document workflows. Get started with these two key sections: - Setup & Configuration - This section covers the initial setup required for Document Management, including connecting storage accounts, adding the CloudFiles app card to HubSpot records, configuring system behaviour, and managing users and licenses. - Features - This section covers the core capabilities available in HubSpot, including record widgets, the content library, connected storage support, and workflow actions for automating document-related tasks. --- # Setup & Configuration (Document Management) https://help.cloudfiles.io/hubspot/a8Pc-setup-and-configuration # Setup & Configuration This section covers the initial setup and configuration required to use the Document Management product within HubSpot. The articles below explain how to connect storage systems, configure record-level access, define system behaviour, and manage user access and licenses. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction This section covers the initial setup and configuration required to use the Document Management product within HubSpot. The articles below explain how to connect storage systems, configure record-level access, define system behaviour, and manage user access and licenses. - Adding an App Card on the Record Page: Explains how to add the CloudFiles App Card to HubSpot records and link folders or files from connected storage. It also covers the available file and folder actions and how to unlink content when it’s no longer required. - Account Setup: Covers Document Management settings used to connect storage accounts, manage libraries, and configure file and folder conflict behaviour. This article is primarily intended for admins responsible for initial setup and storage rules. - Setup Wizard: Describes the step-by-step setup wizard used to configure CloudFiles inside HubSpot. It walks through selecting libraries, adding the widget, linking files or folders, and setting up automation-related options. - Connecting External Storage Accounts: Details how to connect supported external storage platforms such as Google Drive, SharePoint, OneDrive, etc, within the CloudFiles app for HubSpot. It also explains where connected files and folders appear within CloudFiles after authentication. - License Management: Explains how admins can manage user access, roles, invitations, and license counts for the Document Management product. It also clarifies how licenses are handled across different CloudFiles products. - Usage: This article explains the Document Management Usage view in CloudFiles, which helps you monitor how automation credits are consumed over time. It covers the usage summary card, historical usage trends, breakdown by flow action and usage grouped by HubSpot object type, along with guidance on purchasing additional credit packs if needed. --- # Adding an App Card on the Record Page https://help.cloudfiles.io/hubspot/adding-an-app-card-on-the-record-page # Adding an App Card on the Record Page Learn how to add the CloudFiles App Card to a HubSpot record, link it to a folder or file, manage linked content, and unlink folders when they're no longer needed. > Kind: Guide · Updated: Jun 4, 2026 The CloudFiles App Card integrates with HubSpot to make managing files and folders easier. It allows you to link your storage libraries, such as SharePoint / Google Drive / OneDrive / Box / Dropbox or even AWS S3, directly to your HubSpot records. Once linked, you can perform essential actions like renaming, sharing, downloading, or previewing content. This article explains the following - - Configuring the App Card: In this section, you’ll learn how to add the CloudFiles App card to your HubSpot records. - Linking a Folder to the Card: In this section, we’ll guide you through connecting specific folders or files to the App card for access. - Working with Linked Folders: In this section, you’ll discover the operations you can perform on connected files and folders directly within the card. - Unlinking the Folder: In this section, we’ll explain how to disconnect a folder or file from the CloudFiles App Card while keeping it safe in your storage library. Now, let’s get into each section in detail. ## 1 - Configuring the Card The CloudFiles App Card allows you to easily manage and share files directly within your HubSpot records. Follow these simple steps to integrate the widget into your HubSpot: - Navigate to any HubSpot record and click on "Customise view" located in the top-right corner. - From the menu, select "Default view". - Click the "+" button to create a new tab or add the widget to the existing tab. - Assign a name to the tab if any. For example, you can name it "CloudFiles" for easy identification. - Click on the "+" button again to open the Card Library and select CloudFiles. - Next, click on "Add Card" to add the widget to the existing/ new tab. Follow the steps given below in the GIF: ![](https://media.help.cloudfiles.io/dm-adding-app-card-hs/01.gif) ## 2 - Linking a folder to the App Card Once you've set up the card, the next step is to link it to a folder. This will allow you to access and manage specific files or folders directly within your HubSpot records. Follow these simple steps to complete the process: - Open the HubSpot record where you want to link the folder. - Locate the CloudFiles Tab that you added in the previous step or in the existing tab. - Click on "Select Folder/File." - A dialogue box will appear. Here, you can browse and select the desired library, folder, or file you want to link. - Select the folder or file, and the contents will instantly start appearing in your card. Follow the steps given in the GIF: ![](https://media.help.cloudfiles.io/dm-adding-app-card-hs/02.gif) By linking a folder to the card, you can quickly view and access its contents, streamlining your workflow and improving productivity. With everything in one place, managing files within HubSpot becomes much more efficient. ## 3 - Working with linked folders Linked folders in the widget are designed to be user-friendly and efficient. Once a folder is connected, you can perform various actions directly from the app card to manage your files and folders effectively. Here's an overview of the available options: For linked folders, you will have the following options: - Open in Google Drive/SharePoint/Other Storage Library: Quickly open the folder in your connected storage service. - Share: Generate a shareable link to access all the contents of any folder as a whole. - Rename: Change the name of the folder as needed. - Delete: Permanently remove the folder from the linked storage. - Add to Dataroom: Directly add the folder to the dataroom. - Disconnect: Unlink the folder from the card while keeping it intact in your storage library. ![](https://media.help.cloudfiles.io/dm-adding-app-card-hs/03.jpg) For individual files, you can access the following options: - Open in Google Drive/SharePoint/Other Storage Library: Open the file in your storage provider for additional actions. - Download: Save a local copy of the file to your device. - Preview: View the file without downloading it. - Share: Create a shareable link for any file. - Rename: Edit the file name directly from the widget. - Replace: Swap the current file with another while maintaining the folder structure. - Add to Dataroom: Directly add the file to the dataroom. - Move: Change the file's location within the storage library. - Delete: Permanently remove the file from the linked storage. - Disconnect: Unlink the file from the app card while keeping it intact in your storage library. ![](https://media.help.cloudfiles.io/dm-adding-app-card-hs/04.png) With these options, you can manage your files and folders within the A. ## 4 - Unlinking the folder If you no longer need a folder or file linked to the widget, you can easily unlink it. Follow these steps to disconnect: - Navigate to the App Card or open the connected folder within the card. - Locate the "Disconnect" button. - Click on the button to unlink the folder or file. ![](https://media.help.cloudfiles.io/dm-adding-app-card-hs/05.png) Once unlinked, the folder or file will no longer appear in the app card, but it will remain intact in your storage library. ## More resources on CloudFiles - HubSpot Integration If you’re looking to learn more about using CloudFiles with HubSpot, there’s a wealth of articles and videos available to guide you. CloudFiles offers powerful features and integrations that simplify document sharing and automation. In addition to folder creation and connection, as demonstrated above, you can: - Share files securely with clients and team members. - Enable advanced security features like password protection or email verification. - Collect detailed analytics on shared files, including views and engagement. - Use flow components to fully automate document-related processes, saving time and effort. These features ensure an efficient workflow, making CloudFiles an essential tool for managing documents within HubSpot. > The CloudFiles Connected Folder widget is supported only for the four primary HubSpot objects. For more details, check out the documentation on Supported Objects in CloudFiles & HubSpot Integration . --- # Account Setup (HubSpot: Document Management) https://help.cloudfiles.io/hubspot/kRGB-account-setup # Account Setup The Document Management settings are used to connect cloud storage accounts and define how files and folders are handled. > Kind: Guide · Updated: Jun 4, 2026 The Document Management settings are used to connect cloud storage accounts and define how files and folders are handled. In this, you can connect supported storage, manage libraries, and set rules for handling duplicate files or folders. ## Integrations The Integrations section shows the cloud storage that CloudFiles supports. From here, you can connect storage like Google Drive, SharePoint, OneDrive, Dropbox, Box, Microsoft Teams, HubSpot, and CloudFiles itself. Each connected storage is linked to an integration or system user. This account is further used by CloudFiles to run automations such as folder creation and organisation. Once connected, you will see: - Connected by – the user who connected the account. - Connected on – the date of connection. You can also disconnect an account from here if needed. ![](https://media.help.cloudfiles.io/dm-account-setup-hs/01.png) To know more about integration users and how to connect them, refer to What is an Integration/System user? ## Manage Libraries You can select which libraries to make available. Multiple libraries can be enabled. Each connected storage is associated with an integration user, the account CloudFiles uses to perform various automations. ![](https://media.help.cloudfiles.io/dm-account-setup-hs/02.png) ## Conflict Behaviours Conflict behaviours define how CloudFiles handles duplicate files and folders when running automations such as file/folder creation, backup, or organisation. These settings depend on the storage platform you have connected and are divided into two categories: File Conflict Behaviour and Folder Conflict Behaviour. ### File Conflict Behaviour This setting controls what happens when CloudFiles tries to create or upload a file that already exists in the same location. Depending on the platform, CloudFiles may allow you to rename the new file to make it unique, replace the existing file with the new one, keep the existing file unchanged, or stop the process with an error. ### Folder Conflict Behaviour This setting determines how CloudFiles reacts when a folder with the same name already exists. Similar to files, the system may either create a uniquely named folder, keep the existing one unchanged, or stop the operation entirely. ### How Storage Platforms Handle Conflicts? CloudFiles supports four behaviours across different platforms: Rename, Replace, No Op, and Fail. - Rename adds a suffix such as “(1)” to create a unique file or folder name and is supported on all major platforms, including CloudFiles, Google Drive, Dropbox, SharePoint, OneDrive, Box, and Microsoft Teams. - Replace overwrites an existing file and is supported only for files on platforms that allow overwriting, specifically OneDrive, SharePoint, and Microsoft Teams. - No Op skips creation and keeps the existing item unchanged, and is available across all platforms. - Fail stops the action entirely and reports an error, and is also supported wherever the platform allows error-based conflict handling. Folder conflict handling follows a similar pattern, with most platforms supporting Rename, No Op, and Fail, while Replace is not available for folders on any platform. ![](https://media.help.cloudfiles.io/dm-account-setup-hs/03.png) --- # Setup Wizard (HubSpot: Document Management) https://help.cloudfiles.io/hubspot/setup-wizard # Setup Wizard The Document Management Setup Wizard helps you configure CloudFiles for use inside HubSpot, guiding you through connecting document storage, displaying documents on records, and automating folder creation. > Kind: Guide · Updated: Jun 4, 2026 The Document Management Setup Wizard helps you configure CloudFiles for use inside HubSpot. It guides you through the essential steps required to connect your document storage, display documents on HubSpot records, and optionally automate folder creation using workflows. ![](https://media.help.cloudfiles.io/dm-setup-wizard-hs/01.png) The Document Management setup wizard is designed to be completed sequentially, but you can revisit individual steps later if needed. Each step in the wizard includes an embedded video walkthrough, making it easier to understand and complete the setup with visual guidance. ## Accessing the Setup Wizard You can access the setup wizard from the Document Management section in the CloudFiles app from the left-hand side bar. A progress indicator on the left shows how many steps are completed, helping you track your setup progress. The wizard consists of five steps, each focusing on a specific part of the configuration. ### Step 1: Select Your Library This step allows you to choose the document storage platforms you want to use with CloudFiles. Supported options include Google Drive, SharePoint, OneDrive, and other connected storage providers. ![](https://media.help.cloudfiles.io/dm-setup-wizard-hs/02.png) Once selected, the chosen libraries become available throughout CloudFiles and can be accessed directly from HubSpot records. After saving your selection, mark the step as "Complete." ### Step 2: Configure the Document Management Widget The Document Management widget allows you to view and manage files directly within HubSpot records, such as Contacts, Companies, Deals, Tickets or any other custom objects available for Enterprise users. ![](https://media.help.cloudfiles.io/dm-setup-wizard-hs/03.png) At this stage, the widget is added to the HubSpot record layout. This ensures that CloudFiles appears as a dedicated tab or section inside the record view, making documents easily accessible without leaving HubSpot. After saving the layout changes in HubSpot, this step can be marked as done in the wizard. ### Step 3: Link a File or Folder Once the widget is configured, you can link an existing file or folder from your selected library to a HubSpot record. ![](https://media.help.cloudfiles.io/dm-setup-wizard-hs/04.png) After a file or folder is linked, its contents immediately appear inside the Document Management widget on the record, allowing users to browse and interact with documents directly. ### Step 4: Connect the Automation User The Automation User is a dedicated account used by CloudFiles to run automations such as folder creation, associating files/folders, etc. This step is available only for Enterprise plans. ![](https://media.help.cloudfiles.io/dm-setup-wizard-hs/05.png) During this step, you authenticate a storage account that CloudFiles will use to perform automated actions. Once connected, this user is consistently used for all document management automations, ensuring reliability and avoiding permission-related issues. To know more about Automation user, read What is an 'Automation User' and how does it work? ### Step 5: Create a HubSpot Workflow (Enterprise) A HubSpot workflow can be created to automatically generate and attach folders when new records are created or when specific conditions are met using the CloudFiles flow actions. For example, a folder can be automatically created for every new Contact or Deal and linked back to the record. ![](https://media.help.cloudfiles.io/dm-setup-wizard-hs/06.png) After the workflow is saved and activated, CloudFiles automatically manages folder creation and attachment without manual intervention. This step is available only for Enterprise plans. ### Completion and Progress Tracking Each completed step is marked visually in the setup wizard, and the progress indicator updates accordingly. You can complete the steps in order and return to unfinished steps at any time. The Document Management Setup Wizard ensures CloudFiles is fully configured to work with HubSpot. By completing these steps, you enable centralised document access, in-record file management, and optional automation for scalable document workflows. --- # Connecting External Storage Accounts (Setup & Configuration) https://help.cloudfiles.io/hubspot/connecting-external-storage-accounts # Connecting External Storage Accounts Learn how to connect external storage platforms like Google Drive, SharePoint, and OneDrive directly to HubSpot using CloudFiles. > Kind: Guide · Updated: Jun 4, 2026 CloudFiles allows you to connect external storage platforms directly to HubSpot, making it easier to access, manage, and organize your documents from a single place. By connecting your preferred storage accounts, you can view and work with files without switching between multiple platforms. This article walks you through how to connect external storage accounts in CloudFiles, including Google Drive, SharePoint, and OneDrive. ## Supported Storage Platforms CloudFiles supports integration with multiple external storage providers, including: - Google Drive - SharePoint - OneDrive - Dropbox - Box - HubSpot - Microsoft Teams You can connect one or more of these storage platforms based on your requirements. The connection process is similar across all supported providers. ## Accessing the Libraries Section To begin connecting a storage account: - From the left-hand sidebar in CloudFiles, navigate to Document Management → Libraries. - Click on the CloudFiles tab under Libraries. - You will see a list of available storage platforms that can be integrated with HubSpot. - Select the storage platform you want to connect and follow the corresponding steps. ![](https://media.help.cloudfiles.io/dm-connect-storage-hs/01.png) ### Steps to Connect Google Drive ![](https://media.help.cloudfiles.io/dm-connect-storage-hs/02.png) - Go to "Document Management → Libraries" from the left menu. - Select Google Drive as the library source. - Click Connect Google Drive. - On the Google sign-in screen, choose the Google account you want to connect to CloudFiles. - Review the sign-in confirmation and click Continue. - On the permissions screen, review the access CloudFiles is requesting. - Click Allow to grant access to your Google Drive. - Once connected, you’ll be redirected back to CloudFiles. Your Google Drive folders will now be visible under My Drive. ### Steps to Connect SharePoint ![](https://media.help.cloudfiles.io/dm-connect-storage-hs/03.png) - Go to Document Management → Libraries from the left menu. - Select SharePoint as the library source. - Click Connect SharePoint. - On the Microsoft sign-in screen, choose the account you want to connect to CloudFiles. - Enter your credentials and password. - After successful authentication, you’ll be redirected back to CloudFiles. Your SharePoint folders will appear under All Sites and Followed Sites in the Libraries section. ### Steps to Connect OneDrive ![](https://media.help.cloudfiles.io/dm-connect-storage-hs/04.png) - Go to Document Management → Libraries from the left menu. - Select OneDrive as the library source. - Click Connect OneDrive. - On the Microsoft sign-in screen, choose the account you want to connect to CloudFiles. - Enter your credentials and password. - Once the connection is complete, you’ll be redirected back to CloudFiles. Your OneDrive folders will now be available under All Files. By connecting external storage accounts to CloudFiles, you can centralize document access directly within HubSpot and streamline your document management process. You can follow similar steps to connect other supported storage platforms such as Dropbox, HubSpot, and Microsoft Teams. Once connected, all your files remain accessible from the Libraries section, making it easier to manage documents across multiple storage providers from a single interface. --- # License Management (HubSpot: Document Management) https://help.cloudfiles.io/hubspot/license-management # License Management The License Management section in CloudFiles allows admins to control access to the Document Management product, including viewing active users, assigning roles, inviting new users, and managing the total number of licenses available. > Kind: Guide · Updated: Jun 4, 2026 The License Management section in CloudFiles allows admins to control access to the Document Management product. From this page, admins can view active users, assign roles, invite new users, and manage the total number of licenses available for the product. Each CloudFiles product -> Document Management, Document Generation, and Document Sharing has its own license configuration, which can be managed independently. CloudFiles also supports Partner Seats, allowing organizations to invite external implementation partners or HubSpot agencies with limited, dedicated access. ## Accessing License Management License Management can be accessed from Settings in CloudFiles by selecting License Management from the left-hand menu. By default, the Document Management tab is selected, allowing you to manage licenses specific to this product. The License Management screen provides a consolidated view of all users associated with the Document Management product. At the top of the page, product tabs allow you to switch between Document Management, Document Generation, and Document Sharing. Any changes made apply only to the selected product. ![](https://media.help.cloudfiles.io/dm-license-mgmt-hs/01-b.png) Below the tabs, the Document Management Licenses section displays the current license status, including the number of licenses available and the list of users assigned to this product. ### User List and License Details The user table shows all users who have access to Document Management. For each user, the following information is displayed: - Name and Email ID of the user. - License Status indicates whether the license is active or inactive. - Role defines the user’s level of access. CloudFiles supports three roles: - Admin – Can manage licenses, invite users, and configure the account. - User – Can access the products assigned to them. - Partner – Intended for external implementation partners or agencies. Partner users can access only the CloudFiles account they were invited to. > **Note** — Partner Seats are currently available by request. If you’d like to enable Partner Seats for your CloudFiles account, contact our support team. ### Inviting a User Clicking "Invite User" opens a dialogue that allows admins to invite new users to CloudFiles. In the New Invites view, the admin enters the user’s email address and selects a role, either User or Admin. Once the invitation is sent, the user receives an email invitation to join CloudFiles. If a license is available, an active license is automatically assigned after the invitation is accepted. ![](https://media.help.cloudfiles.io/dm-license-mgmt-hs/03.png) The Pending Invitations view shows users who have been invited but have not yet accepted their invitation, helping admins keep track of outstanding invites. ### Inviting a Partner If Partner Seats are enabled for your CloudFiles account, admins can invite external implementation partners or HubSpot agencies with a dedicated Partner role. Partner users are intended for external collaborators who help configure or manage the CloudFiles account on behalf of your organization. When inviting a Partner: - Only external email addresses can be invited. - A Partner Seat must be available. ![](https://media.help.cloudfiles.io/dm-license-mgmt-hs/08.png) ### Updating Roles and License Status Admins can directly update a user’s role and license status from the License Management table. Each user entry includes editable fields that allow quick adjustments without leaving the page. Using the edit (pencil) icon, admins can change a user’s role between Admin and User, depending on the required level of access. ![](https://media.help.cloudfiles.io/dm-license-mgmt-hs/04.png) Similarly, the license status can be toggled between Active and Inactive, giving admins control over whether a user currently has access to the Document Management product. ![](https://media.help.cloudfiles.io/dm-license-mgmt-hs/05.png) ### Managing Licenses The Manage Licenses option allows admins to control the total number of Document Management licenses available. When selected, a modal opens where the admin can increase or decrease the number of licenses using the plus/minus controls. The modal also displays the current number of licenses in use and the updated total after changes are applied. ![](https://media.help.cloudfiles.io/dm-license-mgmt-hs/06.png) Selecting "Confirm Changes" updates the license count, making new licenses immediately available for assignment. License Management in CloudFiles provides admins with full visibility and control over access to the Document Management product. By managing users, roles, invitations, and license counts from a single screen, teams can ensure secure access to documents while scaling usage as needed. > **Note** — Partner Seats are managed separately from standard product licenses. They do not count toward your purchased license total. ### Deleting a User Admins can permanently remove user from the CloudFiles account directly from the License Management screen. ![](https://media.help.cloudfiles.io/dm-license-mgmt-hs/07.png) This action cannot be undone. When a user is deleted, they are completely removed from the CloudFiles account and will no longer have access to any CloudFiles products. Any files, folder, Datarooms, shared link or other resources owned by the user are automatically reassigned to the admin initiating the delete action. This ensures that existing resources remain accessible and no data is lost after the user is removed. --- # Usage (HubSpot: Document Management) https://help.cloudfiles.io/hubspot/usage # Usage The Document Management usage view helps you monitor how CloudFiles document management automations consume credits over time. > Kind: Guide · Updated: Jun 4, 2026 The Document Management usage view helps you monitor how CloudFiles document management automations consume credits over time. It provides visibility into current billing usage, historical trends, and how usage is distributed across automation actions and HubSpot objects. ## Accessing Document Management Usage To access the Document Management usage view: - Open the CloudFiles app for HubSpot. - Select Document Management from the top navigation bar. - From the left sidebar, click Usage. ![](https://media.help.cloudfiles.io/dm-usage-hs/01.png) ### Sections Available in the Usage View The usage view is divided into multiple sections that provide an overview of current billing usage, historical trends, and a detailed breakdown of how credits are consumed. Each section focuses on a specific aspect of document management usage. ## Usage Summary Card The Usage Summary Card displays a snapshot of usage for the current billing cycle. It shows the billing cycle start and end dates, the total number of credits consumed so far, the remaining credits available, and the number of days left before the billing cycle resets. This section helps you quickly assess whether current usage is within expected limits. ![](https://media.help.cloudfiles.io/dm-usage-hs/02.png) ### Purchasing Additional Credits If your usage exceeds the included limits in your current plan, you can purchase additional credit packs as an add-on. ### Automation Pack | Plan | Price/month | Automations/month | |---|---|---| | Small Pack | $10 | 100 | | Medium Pack | $75 | 1,000 | | Large Pack | $500 | 10,000 | These add-ons allow you to continue running document management automations without interruption, even during periods of higher usage. Additional credits are applied to your account immediately and are consumed in the same way as your existing plan credits. ## Historical Usage Analysis The Historical Usage Analysis section visualises how document management usage changes over time. ![](https://media.help.cloudfiles.io/dm-usage-hs/03.png) Usage can be viewed across predefined time ranges, such as Today, This week, This Year or Last 180 Days. A Custom Date Range selector is available for more precise analysis. Usage data can be displayed using Bar or Line graphs to identify trends, spikes, and periods of low activity. ![](https://media.help.cloudfiles.io/dm-usage-hs/04.png) ## Filters and Controls Filters allow you to refine how usage data is displayed. You can group usage by interval, including Daily, Weekly, or Monthly views. Automation Actions can also be selected to focus analysis on specific document management operations. These controls help isolate usage patterns and understand when particular actions were executed. ## Breakdown by Flow Action The Breakdown by Flow Action section shows how usage is distributed across individual document management flow actions. It displays the total number of actions performed and the relative contribution of each action. This helps identify which flow actions are responsible for the majority of credit consumption. ![](https://media.help.cloudfiles.io/dm-usage-hs/05.png) ## Linked Records by HubSpot Object This section groups usage data by HubSpot object type. It shows which objects are most frequently associated with document management flow actions. This helps understand where document management automations are being applied and which object types contribute most to overall usage. ![](https://media.help.cloudfiles.io/dm-usage-hs/06.png) --- # Features (Document Management · HubSpot) https://help.cloudfiles.io/hubspot/RX0R-features # Features CloudFiles brings external file storage directly into HubSpot, allowing teams to access, organise, and manage documents without leaving the CRM. These are the document management features provided by CloudFiles. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles brings external file storage directly into HubSpot, allowing teams to access, organise, and manage documents without leaving the CRM. These are the document management features provided by CloudFiles. - Record Widgets: Record Widgets integrate external storage platforms with HubSpot records, allowing users to access and manage files, folders, and datarooms directly from records. - Content Library: The Content Library allows users to access and manage files from connected external storage within HubSpot, with real-time synchronisation and permission handling. - Connecting External Storage Accounts: CloudFiles supports connecting external storage platforms such as Google Drive, SharePoint, OneDrive, Dropbox, and Microsoft Teams. - Automations: CloudFiles workflow actions allow document-related tasks to be executed automatically within HubSpot workflows, such as creating folders and linking documents to records. --- # Record Widgets https://help.cloudfiles.io/hubspot/record-widgets # Record Widgets Record Widgets of CloudFiles connect HubSpot with external storage platforms such as Google Drive, SharePoint, OneDrive, Dropbox, Box, and AWS S3. They allow users to view, manage, and organise files, folders, and datarooms directly from HubSpot records. > Kind: Guide · Updated: Jun 4, 2026 Record Widgets of CloudFiles connect HubSpot with external storage platforms such as Google Drive, SharePoint, OneDrive, Dropbox, Box, and AWS S3. They allow users to view, manage, and organise files, folders, and datarooms directly from HubSpot records. This overview introduces the different CloudFiles record widgets and features. Each section below links to a detailed article explaining its functionality. - App Card – The App Card appears as a central component within HubSpot records. It allows users to browse and manage linked files or folders from external storage, perform actions like open in storage platform, rename, replace, and view analytics. - Sidebar Widget – The Sidebar Widget appears on the right-hand panel of HubSpot records. It provides quick access to associated files and folders through resource tiles and supports actions like browse, share, download, and analytics via the Attachment Actions Dropdown. - Associations – Associations link files, folders, or datarooms from connected storage platforms to HubSpot records. They can be created through both the App Card and the Sidebar Widget and support single, multiple, and cross-library linking. - File Operations – File Operations allow users to open, preview, share, download, rename, or replace linked files from within HubSpot. The available options vary slightly between the App Card and the Sidebar Widget interfaces. - Folder Operations – Folder Operations enable users to manage connected folders inside HubSpot. Users can open, rename, or delete folders in the App Card, or share and browse folder contents through the Sidebar Widget. Thus, the Record Widgets of CloudFiles provide structured access to external files and folders within HubSpot. --- # App Card https://help.cloudfiles.io/hubspot/app-card # App Card The App Card connects your external storage platforms with HubSpot records, letting users view and manage linked files and folders directly within a HubSpot record. > Kind: Guide · Updated: Jun 4, 2026 ## Overview The App Card connects your external storage platforms with HubSpot records. It integrates with storage such as Google Drive, SharePoint, OneDrive, Box, Dropbox, and AWS S3. The App Card appears in an existing or newly created tab in the middle section of a HubSpot record. Once configured, the App Card displays linked files and folders and allows users to perform file and folder operations directly within HubSpot. Refer to the image below for a visual overview of the options and features available within the CloudFiles App Card. ![](https://media.help.cloudfiles.io/dm-app-card-hs/01.png) This article explains the key functions and features of the App Card, including: - Content Library – Covers how to connect and link files and folders to a HubSpot record, and how linked content is displayed in the App Card. - Explorer Navigation – Explains how users browse linked folders, use breadcrumbs, and search within the current folder. - Managing Files and Folders – Describes how linked content is organised, sorted, and managed, including uploading files, creating folders, and performing file and folder actions. - App Card Settings and Controls – Covers syncing content, managing connection settings, and accessing app-level settings for administrators. ## Prerequisites Before exploring the features of the CloudFiles App Card, complete the required configuration steps below. - CloudFiles must be installed and connected to your HubSpot account. If not, refer to the Installation guide for CloudFiles HubSpot Integration . - At least one storage platform (e.g. Google Drive, SharePoint) must be connected to CloudFiles. - The CloudFiles CRM card must be added to the relevant HubSpot record layout. See how to set up Doc Management Quickstart . ## Content Explorer The Content Explorer is the main area of the CloudFiles HubSpot App Card, where users can view and manage files or folders connected to a HubSpot record. It provides options to browse content, search within folders, perform file and folder actions, and manage library-level controls. ### Initial State The initial or empty state appears when no files or folders are currently linked or displayed in the CloudFiles App Card. This state helps users understand that there is no content available yet and guides them toward adding or connecting content. When the Content Library is empty, users can click the 'Select Folder/File' button to connect with folders and files. This is typically the starting point before files or folders are added to the HubSpot record. ![](https://media.help.cloudfiles.io/dm-app-card-hs/02.png) ### Linking Files and Folders CloudFiles supports three connection types. - Connecting a single file makes only that file accessible in the Content Library. - Connecting a folder brings in its full contents, including subfolders and files. - Connecting multiple items lets users link a mix of files and folders from the same or different storage locations. To link content, users can click the Select Folder/File button in the App Card. This opens a window where users can select their external storage platform and browse its library. Users can check the boxes next to the files or folders they want to connect and confirm the selection. The linked content then appears in the Content Library. For detailed setup instructions, refer to Adding an App Card on the Record Page. ![](https://media.help.cloudfiles.io/dm-app-card-hs/03.gif) ### Viewing Linked Content Linked files and folders are displayed in the Content Library after they have been associated with the HubSpot record. The displayed content depends on what has been linked to the record and the user's permissions in the connected storage platform. ![](https://media.help.cloudfiles.io/dm-app-card-hs/04.png) ## Explorer Navigation This section explains how users move through folders linked to the CloudFiles App Card. Navigation tools such as breadcrumbs and search help users locate files and folders within the connected library without leaving the HubSpot record. ### Breadcrumbs As a user navigates into subfolders within the App Card, a breadcrumb trail appears at the top of the card. Each breadcrumb segment represents one level of the folder hierarchy, starting from the linked root folder. Clicking any breadcrumb segment navigates back to that level. When the folder path is long, intermediate segments are collapsed and represented by a ... icon. Clicking the ...icon reveals the hidden segments, allowing the user to jump to any intermediate folder. Breadcrumbs do not appear when the user is at the root of the linked folder or when only files (not folders) are associated with the record. ![](https://media.help.cloudfiles.io/dm-app-card-hs/05.png) ### Browsing Users can browse linked folders directly from the CloudFiles App Card. Selecting a folder opens its contents, including any files and subfolders. The breadcrumb section shows the current folder path and helps users move back through the folder hierarchy. Users can select a previous folder in the breadcrumb path to return to that level, or use the ... menu to view hidden parent folders and navigate directly to the required folder. When a file is selected, it opens the file preview in a new browser tab. Users can also use the file’s Actions context menu for previewing the file. ![](https://media.help.cloudfiles.io/dm-app-card-hs/06.gif) ### Search The Search bar in the CloudFiles HubSpot App Card helps users quickly find files and folders when working with multiple items in the current folder. Enter a file name, folder name, or keyword to view matching results. Search applies only to the folder currently being viewed and does not include items inside nested folders. ![](https://media.help.cloudfiles.io/dm-app-card-hs/07.gif) ## Managing Files and Folders The Content Library is the main area of the CloudFiles App Card where users view and manage files and folders linked to a HubSpot record. It organises connected content into a sortable table, supports bulk selection, and provides file and folder actions, all without leaving HubSpot. ### File and Folder Table The file and folder table organises linked content into rows and columns. Each row represents a file or folder, making it easy for users to review available content at a glance. The table includes key details such as the item name, creator, creation date, and available actions. This layout helps users identify the correct file or folder before opening or managing it. ![](https://media.help.cloudfiles.io/dm-app-card-hs/08.png) ### Sorting Sorting controls appear as toggle arrows beside sortable column headers in the Content Library. The sorting behaviour depends on the column type. Text-based columns, such as Name and Created By, organise items alphabetically, while date-based columns, such as Created At, organise items by creation date. The toggle arrows allow users to switch the display order for the selected column. Sorting only changes how items are arranged in the App Card and does not modify file names, folder structure, ownership, or content in the connected storage platform. ![](https://media.help.cloudfiles.io/dm-app-card-hs/09.png) ### Bulk Selection Checkboxes appear next to files and folders in the Content Library. Users can select one or more items by clicking the checkbox beside each row. This is useful when working with multiple files or folders in the same location where bulk selection is required. Actions such as bulk download, bulk add to dataroom etc... are support by the CloudFiles App Card. ![](https://media.help.cloudfiles.io/dm-app-card-hs/10.png) ### Upload Files The Upload Files button adds files to the current directory in the App Card, where they appear within the existing library structure. ![](https://media.help.cloudfiles.io/dm-app-card-hs/11.png) ### New Folder The New Folder button allows users to create a folder within the current directory. The folder appears in the App Card as part of the existing library structure. ![](https://media.help.cloudfiles.io/dm-app-card-hs/12.gif) ### File and Folder Actions After files and folders are linked to the App Card, users can manage the connected content directly from within CloudFiles. These actions help users access, organise, share, and control linked items efficiently, while keeping the App Card synchronised with the connected external storage location. ### Folder Options The Actions column appears on the right side of each folder row. It includes a dropdown arrow that opens the context menu for that specific item. ![](https://media.help.cloudfiles.io/dm-app-card-hs/13.png) The folder context menu displays the actions available for that folder, such as opening, sharing, renaming, deleting, adding to a Dataroom, or disconnecting it. - Open in Drive- Opens the folder contents in the connected external storage platform, such as Google Drive, SharePoint, OneDrive, Box, Dropbox, or AWS S3. - Add to Dataroom- Adds the folder contents to a secure Dataroom, allowing users to share files in a controlled environment and track advanced sharing analytics. - Rename- Allows users to change the name of the folder - Delete- Removes the folder from the CloudFiles App Card and deletes it from the connected external storage platform. - Share- Allows users to share a folder with others. - Disconnect- Removes the folder from the CloudFiles App Card without deleting it from the connected external storage platform. For more details, refer to Folder Operations. ### File Options For files, the Actions column appears on the right side of each file row. The dropdown arrow in this column opens the context menu for that specific file. ![](https://media.help.cloudfiles.io/dm-app-card-hs/14.png) The file context menu displays the actions available for that file, such as opening, previewing, downloading, sharing, renaming, deleting, adding to a Dataroom, or disconnecting it. - Open in Drive- Opens the file path in the connected external storage platform, such as Google Drive, SharePoint, OneDrive, Box, Dropbox, or AWS S3. - Preview- Allows users to view the file content without opening it directly in the external storage platform. - Download- Allows users to download the file locally. - Add to Dataroom- Adds the file to a secure Dataroom, allowing users to share files in a controlled environment and track advanced sharing analytics. - Rename- Allows users to change the name of the file - Delete- Removes the file from the CloudFiles App Card and deletes it from the connected external storage platform. - Share- Allows users to share a file with others. - Disconnect- Removes the file from the CloudFiles App Card without deleting it from the connected external storage platform. For more details, refer to File Operations. ## App Card Settings and Controls The App Card Controls provide options for managing the CloudFiles App Card directly in HubSpot. These include syncing the latest content from the connected storage platform, managing connection settings, and accessing app-level settings for administrators. ### Sync The Sync button manually refreshes the CloudFiles App Card to load the latest files and folders from the connected storage location. It's important to note that CloudFiles always gets the latest content whenever the widget refreshes (e.g. on page refresh). The Sync button is an additional option users can use to refresh the view immediately while working on live files. ![](https://media.help.cloudfiles.io/dm-app-card-hs/15.gif) ### Connection Settings The gear icon in the top-right corner of the App Card opens a dropdown menu with widget-level actions for managing connections and session access. - Connect New- Adds another CloudFiles folder or file to the HubSpot record. Use this when you need to link additional files or create a new connection. - Logout- Use this when you want to end the active session, switch to another CloudFiles account, or reconnect with different credentials. - Share - Allows users to share folders with others. Users can generate a shareable link or choose sharing settings based on the available permissions. Note that this option is only available when the user is in the root folder. - Disconnect Folder - Removes all folders from the CloudFiles App Card without deleting it from the connected external storage platform. Note that this option is only present when the user is in the root folder. ![](https://media.help.cloudfiles.io/dm-app-card-hs/16.png) ### App card settings The settings icon at the bottom of the CloudFiles App Card opens a window where users can manage and review the CloudFiles HubSpot app. From here, administrators can view the App Log, manage App permissions and access, and review Record insights. These options help administrators monitor app activity, troubleshoot issues, and manage how CloudFiles interacts with HubSpot records. ![](https://media.help.cloudfiles.io/dm-app-card-hs/17.png) The App Card provides a way to link to and manage external files and folders within HubSpot records. It supports quick navigation, synchronisation, and file management actions without requiring users to leave the HubSpot interface. --- # Sidebar Widget https://help.cloudfiles.io/hubspot/sidebar-widget # Sidebar Widget The sidebar widget on HubSpot contact, company, deal, and ticket records provides direct access to files and folders stored in your storage platforms via an Add button and a CloudFiles hyperlink. > Kind: Guide · Updated: Jun 4, 2026 The sidebar widget is available on the right sidebar of all contact, company, deal, and ticket records in HubSpot. It functions the same way across all record types and provides direct access to files and folders stored in your storage platforms. The widget contains two main components -> an Add button and a CloudFiles hyperlink. These options allow users to access and manage external files within HubSpot records. This article explains the main components and functionality of the Sidebar Widget, including: - Add Button – how users can open the Content Library to browse and link external files or folders. - CloudFiles Hyperlink – how to access the CloudFiles HubSpot App for full file and settings management. - Associating Files, Folders, and Datarooms – how to link external resources to HubSpot records for ongoing access. - Resource Tile – an explanation of how linked items appear, including metadata and status details. - Tile Actions – an overview of available operations that can be performed on linked resources. ## Add Button Selecting the Add button opens the Content Library dialogue. This dialogue allows you to view files and folders from your connected external storage platform. From this interface, you can upload files, create folders, and move files between folders. Thus, the content library provides full access to your storage without leaving the HubSpot record. You can read more about it in this article. ![](https://media.help.cloudfiles.io/dm-sidebar-widget-hs/01.jpg) ## CloudFiles Hyperlink Selecting the CloudFiles hyperlink opens a small dialogue box in the centre of the screen. The dialogue includes an option to Go to CloudFiles, which redirects to the CloudFiles HubSpot App. In the app, you can access all files and folders stored in your connected storage and manage related settings. For more details on admin operations, refer to the article on admin settings here. ![](https://media.help.cloudfiles.io/dm-sidebar-widget-hs/02.gif) ## Associating Files, Folders, and Datarooms Through the sidebar widget, you can associate files, folders, or datarooms from the content library with a HubSpot record. This enables users to keep relevant documents directly accessible from within the record. Datarooms can also be created from the content library and linked in the same way. For detailed information on Associations , refer to the related article here. ![](https://media.help.cloudfiles.io/dm-sidebar-widget-hs/03.gif) ### Resource Tile Once a file, folder, or dataroom is associated, it appears on the widget as a resource tile. Each tile displays key information about the associated item and provides available actions. The information shown on the tile depends on the type and status of the resource. ![](https://media.help.cloudfiles.io/dm-sidebar-widget-hs/04.jpg) ### Tile Metadata The resource tile displays metadata such as the resource name, type, sharing status, number of views, and upload details. ### Name The name of the resource acts as a hyperlink to the connected resource. If the resource is a file stored in SharePoint, selecting the name opens it in the Microsoft editor. If it is a folder stored in Google Drive, the link opens that folder in Google Drive. For datarooms, the link opens the corresponding item in the CloudFiles web app. ### Status The status field shows whether the associated resource has an active CloudFiles sharing link. The possible statuses are Not Shared, Live, and Offline. Each status indicates the accessibility of the shared resource. | Status | Description | |---|---| | Not Shared | A sharing link has not been created for the attached resource. A sharing link can be created manually using the Share option or through a workflow action. | | Live | The attached resource has a CloudFiles sharing link that is currently active and available for external access. Live links can be taken offline from the link settings. | | Offline | A sharing link exists but has been deactivated. The resource will not be accessible until the link is made live again. | ### Type The type field indicates whether the associated item is a file, folder, or dataroom. The available options and details may differ depending on this classification. ### Views The views field appears only when the attachment has a Live or Offline status and shows the number of times the shared link has been viewed. ### Upload Information The upload information field lists details such as the upload date, time, and uploader name. This information helps identify when and by whom the file or folder was added to the sidebar widget. ### Tile Actions Each resource tile includes an Actions dropdown that lists the available operations for that attachment. The options in this menu change depending on whether the associated item is a file, folder, or dataroom. ![](https://media.help.cloudfiles.io/dm-sidebar-widget-hs/05.jpg) Common operations such as Share, Get Link, Analytics, and Delete are available across all attachment types. These allow you to create or manage CloudFiles sharing links, view engagement analytics, or remove the attachment from the record. - For file attachments, additional actions such as Replace, Download, and Add to Dataroom are available. These options make it possible to update a file while keeping existing share links active, manually sync externally stored files, download them locally, or include them in a dataroom. ![](https://media.help.cloudfiles.io/dm-sidebar-widget-hs/06.jpg) - Folder attachments include operations like Browse and Add to Dataroom, which let you view folder contents and organize them for external sharing. ![](https://media.help.cloudfiles.io/dm-sidebar-widget-hs/07.jpg) - For dataroom attachments, the Edit option allows modification of dataroom content, including adding or rearranging files and folders, updating descriptions, and adjusting layout or grouping. ![](https://media.help.cloudfiles.io/dm-sidebar-widget-hs/08.jpg) For complete details on each action and its behavior across different attachment types, refer to the File Operations and Folder Operations . Thus, the CloudFiles sidebar widget enables quick access, management, and association of external files, folders, and datarooms within HubSpot records. --- # Associations https://help.cloudfiles.io/hubspot/associations # Associations An association in CloudFiles links a file, folder, or dataroom from an external storage platform to a HubSpot record via the Sidebar Widget or App Card. > Kind: Guide · Updated: Jun 4, 2026 An association in CloudFiles refers to linking a file or folder from an external storage platform to a HubSpot record. When a file or folder is associated, it becomes visible either in the Sidebar Widget or the App Card, depending on which interface is being used. The associated resource remains connected to the HubSpot record, ensuring that users can view, open, or perform file operations within HubSpot while the original file continues to reside in its external storage platform. This article talks about the following sections: - Sidebar Widget vs App Card Associations: Explains how associations differ in layout and features between the two interfaces. - File, Folder, and Dataroom Association: Describes the types of resources that can be linked to HubSpot records. - Single and Multiple Associations: Outlines how users can associate one or several files or folders based on need. - Cross-Library Associations: Covers linking content from multiple storage platforms to a single HubSpot record. ## Sidebar Widget vs App Card Association CloudFiles supports creating associations through two different interfaces, the Sidebar Widget and the App Card. Both connect external files or folders to HubSpot records, but they differ in layout and functionality. ![](https://media.help.cloudfiles.io/dm-associations-hs/01.jpg) | Aspect | Sidebar Widget | App Card | |---|---|---| | Location in HubSpot | Appears on the right-hand sidebar of contact, company, deal, and ticket records. | Appears in the central section of a record under an existing or newly created tab. | | Display Format | Shows each associated item as a resource tile with metadata and basic actions. | Displays files and folders in a content view similar to a storage interface. | | Access Method | Uses the Add button to open the Content Library for association. | Uses the Select File/Folder button to open the Content Library for linking. | | Primary Use | Suitable for quick associations or linking a few individual files or folders. | Suitable for detailed file and folder management, navigation, and viewing multiple items. | | Navigation | Displays only the selected file, folder, or dataroom. | Allows browsing through subfolders with breadcrumb navigation. | Both interfaces create the same type of file or folder association. The choice between them depends on where the user prefers to view and manage linked content within the HubSpot record. ## File, Folder, and Dataroom Association CloudFiles supports three types of associations depending on the type of resource: - A file association connects an individual document, such as a PDF, spreadsheet, or presentation, to a HubSpot record. The linked file can be opened, previewed, shared, or updated directly within HubSpot. - A folder association connects an entire directory from an external storage platform. This allows users to access multiple files and subfolders through the App Card or Sidebar Widget, depending on configuration. - A dataroom association links a preconfigured/configured CloudFiles dataroom to a HubSpot record. Datarooms may contain a collection of files, folders, or request blocks organized for sharing or tracking. Each type of association provides direct access to its contents within HubSpot and maintains a live connection to the external storage source. ## Single and Multiple Associations CloudFiles allows both single and multiple associations depending on the record's requirements. In some cases, users may only need to link a single file or folder to a HubSpot record. For example, attaching a single contract document to a deal. This type of association is simple and best suited for records that reference one key document. In other cases, users can create multiple associations to link several files, folders, or datarooms to the same record. For instance, a company record might contain multiple proposals, reports, or shared folders from different team members or departments. Multiple associations provide flexibility and make it possible to maintain several linked items under the same HubSpot record. ![](https://media.help.cloudfiles.io/dm-associations-hs/02.jpg) CloudFiles supports both scenarios, and users can choose the appropriate method based on their data management needs. ## Cross-Library Associations CloudFiles supports cross-library associations, allowing files and folders from different connected storage platforms to be linked to the same HubSpot record. Through the Content Library, users can access all integrated storage platforms such as Google Drive, SharePoint, OneDrive, Box, Dropbox, or AWS S3 and select files or folders from any of them. For example, a user can associate one file from Google Drive and another from SharePoint to the same HubSpot record. ![](https://media.help.cloudfiles.io/dm-associations-hs/03.gif) This flexibility ensures that records can contain relevant materials from multiple storage systems without requiring manual consolidation. Cross-library associations work in both the Sidebar Widget and the App Card. Thus, associations in CloudFiles establish a direct link between external files or folders and HubSpot records. --- # File Operations https://help.cloudfiles.io/hubspot/file-operations # File Operations File operations in CloudFiles record widgets allow users to manage files associated with HubSpot records through the App Card and the Sidebar Widget. > Kind: Guide · Updated: Jun 4, 2026 File operations in CloudFiles record widgets allow users to manage files associated with HubSpot records through the App Card and the Sidebar Widget. These operations include opening, previewing, sharing, downloading, renaming, deleting, and more. Depending on where the file is linked, the available options and layout may differ. This article covers: - File Management Operations in the App Card — where users can perform detailed file-level actions such as rename, replace, share, and view analytics. - File Management Operations in the Sidebar Widget — where users can use the Attachment Actions Dropdown for link and analytics management. ## File Management Operations in the App Card The App Card provides a set of file operations that can be performed directly within HubSpot. ### Open in the Respective Storage Platform This operation opens the selected file in its original storage platform. For instance, a Word file from Google Drive opens in Google Docs, a document from SharePoint opens in Microsoft Office Online, and a file from Dropbox opens in Dropbox’s viewer. The file remains in its original format and storage location, ensuring that any edits made are reflected in the connected storage account. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/01.gif) ### Preview The Preview option allows users to view the contents of a file within HubSpot within the CloudFiles file viewer without downloading it. Supported formats include PDF, DOCX, PPTX, XLSX, and image files. The file opens in a read-only view, allowing users to review content quickly before performing other actions. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/02.gif) ### Download The Download operation saves a local copy of the selected file to the user’s device. The file downloads in its native format, for example, a .docx document downloads as .docx, a .pdf file as .pdf, and an image file, such as .png or .jpg, retains its format. The original file in the external storage remains unchanged. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/03.jpg) ### Add to Dataroom This option allows users to add the selected file to an existing CloudFiles dataroom. A dataroom may include multiple files or folders grouped for structured access or sharing. The file stays in its external storage location but is made available within the selected dataroom for further collaboration or tracking. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/04.gif) ### Rename The Rename operation lets users modify the name of a file directly from the App Card. Once renamed, the new name appears both in HubSpot and in the connected storage platform. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/05.gif) ### Delete The Delete option permanently removes the file from the external storage platform. Once deleted, the file is no longer accessible from HubSpot or the original storage account. This operation should be used carefully, as it cannot be reversed. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/06.jpg) ### Share The Share operation creates a CloudFiles sharing link for the selected file. This link enables external sharing and can include access controls such as password protection or expiry settings. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/07.gif) ### Get Link The Get Link operation is available when a file already has a live CloudFiles sharing link. It opens the Link Settings dialogue, allowing users to copy the link or modify its configuration such as permissions, expiry, or access restrictions, without creating a new link. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/08.jpg) ### Analytics Analytics provides access to file-level engagement data. Users can view how many times the file’s sharing link has been accessed, by whom, and from where. It also gives information about the number of downloads, the number of views, and page-wise analytics as well. This helps monitor file activity and usage trends without leaving HubSpot. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/09.jpg) ### Replace The Replace operation lets users upload a new version of the file while keeping the same CloudFiles sharing link and metadata. This is useful when an updated version of a document (for example, a revised proposal or presentation) needs to replace the previous one. The operation preserves the file name and link, ensuring that existing recipients always access the most current version. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/10.jpg) ### Disconnect Disconnect removes the file’s link to the HubSpot record while keeping the file safe in its external storage. The disconnection only affects HubSpot visibility, whereas the file itself remains intact and accessible in the connected storage service. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/11.jpg) File management in the App Card provides comprehensive control over linked documents, enabling users to perform detailed actions such as renaming, replacing, and analysing file usage directly within HubSpot. ## File Management Operations in the Sidebar Widget Files associated using the Sidebar Widget can also be managed directly within HubSpot. The available operations are accessed from each file’s resource tile through the Actions Dropdown. The Actions Dropdown contains various file management operations depending on the file’s type and sharing status. It provides file-specific operations, allowing users to perform key management actions without leaving HubSpot. ### Share This operation generates a CloudFiles sharing link for the file if one has not already been created. The sharing status changes from “Not Shared” to “Live” once the link is active. Shared files can be configured with security and access settings as needed. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/12.jpg) ### Get Link: This operation appears when the file status is “Live.” It opens the link settings dialog, allowing users to copy or modify the existing link configuration. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/13.jpg) ### Analytics: Displays document analytics such as views and engagement metrics collected through CloudFiles. It also provides detailed insights such as the number of downloads, and page-wise analytics. This allows you to track file engagement and usage trends directly within HubSpot. Analytics can be viewed manually or used in automation workflows for reporting and tracking. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/14.jpg) ### Download The Download option allows users to save a local copy of the file to their device. The downloaded file retains its original format. For instance, a .pptx file downloads as .pptx, and an image such as .jpg downloads in the same format. The operation does not alter the version stored in the external platform. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/15.jpg) ### Replace Allows users to replace a file (for example, a PDF, image, PowerPoint, or document) while keeping the same CloudFiles link active. The new version replaces the old one, ensuring shared recipients continue to access the most recent version without a new link. The file name remains the same. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/16.jpg) ### Sync This operation updates the file in HubSpot to match the version stored in the external storage when manual syncing is enabled. If automatic syncing is active, this operation does not apply. ### Add to Dataroom This action adds the selected file to a dataroom while keeping it in its original storage location. The file becomes available as part of the dataroom for shared access, while still being individually linked to the HubSpot record. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/17.jpg) ### Delete The Delete operation removes the file association from the HubSpot record. It does not delete the actual file from its storage platform. However, any CloudFiles sharing link or analytics data tied to the file will be deleted when this operation is performed. ![](https://media.help.cloudfiles.io/dm-file-operations-hs/18.jpg) File operations in the Sidebar Widget offer quick and essential management tools through the Attachment Actions Dropdown, helping users handle file sharing, linking, and analytics without leaving HubSpot. --- # Folder Operations https://help.cloudfiles.io/hubspot/folder-operations # Folder Operations Folder operations in CloudFiles allow users to manage folders linked to HubSpot records directly through the App Card and the Sidebar Widget. > Kind: Guide · Updated: Jun 4, 2026 Folder operations in CloudFiles allow users to manage folders linked to HubSpot records directly through the App Card and the Sidebar Widget. These operations make it possible to open, rename, share, or delete linked folders without leaving HubSpot. This article covers: - Folder Management Operations in the App Card — where users can rename, delete, or disconnect linked folders. - Folder Management Operations in the Sidebar Widget — where users can perform folder actions through the Attachment Actions Dropdown, including sharing, browsing, and adding to datarooms. ## Folder Management Operations in the App Card When folders are linked to HubSpot through the App Card, users can perform several management actions directly within the interface. These operations apply to folders stored in external platforms such as Google Drive, SharePoint, OneDrive, Dropbox, and Box,etc. ### Open in Storage The Open in Storage option opens the folder directly in its connected storage platform. For example, a folder from Google Drive opens in Google Drive’s interface, while a SharePoint or OneDrive folder opens in the respective Microsoft environment. This provides full access to all files and subfolders contained within the linked directory. ![](https://media.help.cloudfiles.io/dm-folder-operations-hs/01.gif) ### Rename The Rename operation allows users to update the folder’s name directly from HubSpot. The new name is reflected both within the App Card and in the external storage system. This helps maintain naming consistency across platforms. ![](https://media.help.cloudfiles.io/dm-folder-operations-hs/02.jpg) ### Delete The Delete operation permanently removes the folder from the connected storage platform. Once deleted, the folder and its contents cannot be recovered through HubSpot. This action should only be used when the folder and its data are no longer required. ![](https://media.help.cloudfiles.io/dm-folder-operations-hs/03.jpg) ### Disconnect The Disconnect option removes the folder’s association from the HubSpot record while keeping the folder intact in its original storage platform. After disconnection, the folder will no longer appear in the App Card, but it remains available in the external storage system. ![](https://media.help.cloudfiles.io/dm-folder-operations-hs/04.jpg) Thus, folder management in the App Card provides essential operations for maintaining and organising linked folders. ## Folder Management Operations in the Sidebar Widget Folders associated with the Sidebar Widget can also be managed from within HubSpot. These operations are available through the Attachment Actions Dropdown, which provides folder-specific actions depending on the folder’s sharing status. ### Browse The Browse operation opens a dialogue box displaying the contents of the linked folder. From here, users can upload files, create subfolders, and perform available file and folder actions as supported by the content library. This feature provides direct access to the folder’s structure without navigating away from HubSpot. ![](https://media.help.cloudfiles.io/dm-folder-operations-hs/05.jpg) ### Share The Share operation appears when the folder has not yet been shared. It creates a CloudFiles sharing link that allows external access to the folder and its contents. Once created, the folder’s status changes to Live, and the link can be configured using the Link Settings dialogue. ![](https://media.help.cloudfiles.io/dm-folder-operations-hs/06.jpg) ### Get Link The Get Link option is available when a folder already has an active CloudFiles sharing link. It opens the Link Settings dialogue, allowing users to copy the existing link or update its configuration, including permissions and expiry settings. ![](https://media.help.cloudfiles.io/dm-folder-operations-hs/07.jpg) ### Analytics The Analytics operation displays engagement data for shared folders. It shows metrics such as the number of views and user activity related to the shared link. This information helps monitor external access to the folder. ![](https://media.help.cloudfiles.io/dm-folder-operations-hs/08.jpg) ### Delete The Delete operation removes the folder’s association from the HubSpot record and deletes the CloudFiles link and related analytics. The folder itself remains in the connected storage platform and is not deleted. ![](https://media.help.cloudfiles.io/dm-folder-operations-hs/09.jpg) ### Add to Dataroom The Add to Dataroom operation allows users to include the selected folder in an existing dataroom. This enables external sharing of the folder as part of a grouped set of resources while keeping it stored in its original platform. ![](https://media.help.cloudfiles.io/dm-folder-operations-hs/10.jpg) Thus, folder management in the Sidebar Widget provides access to folder-specific operations through the Attachment Actions Dropdown. --- # Content Library (Guide · HubSpot) https://help.cloudfiles.io/hubspot/content-library # Content Library Learn how to effectively use the CloudFiles Content Library in HubSpot with this comprehensive document. Discover the library's features, including file and folder operations, associating files with HubSpot records, previewing files, and adding files to a dataroom. > Kind: Guide · Updated: Jun 4, 2026 The Content Library in HubSpot allows you to access, organize, and manage files directly within your CRM. With the CloudFiles integration, you can connect external storage systems, keep content up to date, control access, and manage files without leaving HubSpot. This article provides an overview of four related help topics that explain each feature in detail. - Accessing the Library - Explains how to access and use the Content Library from within HubSpot. Covers browsing files, uploading new ones, and linking them to HubSpot records. - Real-Time Sync - Describes how files stay updated in HubSpot through real-time synchronizstion with external storage. Any changes in the source are reflected automatically. - Permission Sets - Details how file access is controlled using HubSpot permissions and external storage settings. Explains how permissions update automatically when changes are made. - File & Folder Management Operations - Covers how to organize, rename, search, and preview files and folders in the Content Library, as well as how to associate them with HubSpot records. Thus, the Content Library brings file access, synchronisation, permission control, and organisation into one place inside HubSpot. --- # Accessing the Library https://help.cloudfiles.io/hubspot/accessing-the-library # Accessing the Library The Content Library inside HubSpot allows users to browse and access files and folders from various connected storage platforms without leaving a HubSpot record. > Kind: Guide · Updated: Jun 4, 2026 The Content Library inside HubSpot allows users to browse and access files and folders from various connected storage platforms without leaving a HubSpot record. These platforms include Google Drive, SharePoint, OneDrive, Dropbox, Box, HubSpot's file manager, and CloudFiles storage. This article covers the following sections: - Accessing the Library – how to open the Content Library from the Sidebar Widget, App Card, or CloudFiles Dashboard. - Connecting Storages – steps to connect storage platforms, supported integrations, and user-based access permissions. - Entire Storage Access – explanation of drive structures, sites, and permission-based visibility within the connected platforms. ## Accessing the Library The Content Library can be accessed in three main ways: through the Sidebar Widget, the App Card, or the CloudFiles Dashboard. ### From the Sidebar Widget When using the CloudFiles Sidebar Widget inside HubSpot, click on the Add button. This opens the Content Library dialog, displaying files and folders from your connected storage platform. From here, you can browse available resources, upload new files, or associate specific files or folders with the HubSpot record. ![](https://media.help.cloudfiles.io/dm-accessing-library-hs/01.jpg) ### From the App Card Inside the CloudFiles App Card, the Select File/Folder button provides access to the same Content Library. Clicking this button opens the dialogue where you can navigate through your connected storage, view existing files, and link them to the HubSpot record. The interface also allows you to upload content or move items between folders directly. ![](https://media.help.cloudfiles.io/dm-accessing-library-hs/02.jpg) ### From the CloudFiles Dashboard The Content Library can also be accessed via the CloudFiles Dashboard. You can open the dashboard in two ways: - By clicking the CloudFiles hyperlink available in the Sidebar Widget. ![](https://media.help.cloudfiles.io/dm-accessing-library-hs/03.gif) - By logging in directly at https://hubspot.cloudfiles.io/. Once logged in, navigate to the Document Management tab to access the full Content Library. This view provides access to all connected storage platforms enabled under your integration settings. Users can view, upload, rename, and move files or folders directly from the dashboard. ## Connecting Storages Before accessing files in the Content Library, users must connect their desired storage platforms through the Integration Settings section in the CloudFiles Dashboard. To connect a storage platform: - Go to the CloudFiles Dashboard and open the Document Management tab. - Navigate to Integration Settings. - Connect the required storage platform by signing in with valid credentials. ![](https://media.help.cloudfiles.io/dm-accessing-library-hs/04.gif) ### Mirror Storage Mirror Storage provides a two-way sync between your external cloud storage and CloudFiles. Once connected, CloudFiles displays live copies of your external files, so updates made in either system appear in both. It currently supports HubSpot File Storage, SharePoint, OneDrive, Google Drive, Dropbox, and Box. You can also connect AWS S3 or Azure Blob Storage for the same mirrored experience, and Cloudflare R2 is supported for very large file storage. Once a platform is connected, all the files and folders from that storage become accessible in HubSpot through the Content Library, either in the App Card or Sidebar Widget. ### User-Based Permissions When accessing the Content Library in HubSpot, you will see the user credentials displayed at the top-right corner of the dialogue. This indicates which user account is currently being used to access the storage. The visibility of folders and files depends on the permissions granted to that specific user account. This user-based permission ensures that CloudFiles displays only the files and folders that the authenticated user has access to in the external storage system. ![](https://media.help.cloudfiles.io/dm-accessing-library-hs/05.jpg) ## Entire Storage Access The Content Library provides access to the entire directory structure of connected storage platforms, while still enforcing permission-based visibility. - For Google Drive, users can access My Drive and Shared Drives based on their access rights. ![](https://media.help.cloudfiles.io/dm-accessing-library-hs/06.jpg) - For SharePoint, users can view files and folders under Sites and Followed Sites, depending on permissions within the Microsoft 365 environment. ![](https://media.help.cloudfiles.io/dm-accessing-library-hs/07.jpg) - For OneDrive, users can view their personal drive and any shared folders they have access to. ![](https://media.help.cloudfiles.io/dm-accessing-library-hs/08.jpg) - For other platforms such as Dropbox, Box, and AWS S3, users can browse through all available directories and folders accessible under their authenticated account. Only resources that the user has permission to view or modify in the external storage platform will appear in the Content Library. Any restricted or inaccessible directories will not be displayed, ensuring that permissions from the connected platform are fully respected. To learn more about supported integrations and how permission sets work, refer to the Storage Integrations and Permission Sets article. --- # File & Folder Management Operations https://help.cloudfiles.io/hubspot/file-and-folder-management-operations # File & Folder Management Operations A walkthrough of all file and folder management actions available on content stored in your connected storage platform, accessible either through the HubSpot Content Library or by logging into the CloudFiles for HubSpot app, plus how to share a web page as a trackable link. > Kind: Guide · Updated: Sep 9, 2026 In this article, we’ll walk through all the file and folder management actions you can perform on content stored in your connected storage platform using the Content Library. You can access and manage your files and folders either directly inside HubSpot through the Content Library or by logging into the CloudFiles for HubSpot app with your credentials. If you have not connected a storage platform yet, start with Accessing the Library. For how changes in your storage appear inside CloudFiles, see Real-Time Sync. This guide is divided into three main sections: - Accessing the Content Library From HubSpot: all file and folder actions you can perform inside HubSpot using the Content Library, including opening them in storage platforms directly, downloading, renaming, uploading, associating with HubSpot records, or adding items to Datarooms. - Accessing the Content Library From the CloudFiles for HubSpot App: all file and folder management features available in the CloudFiles for HubSpot app, such as previewing files, opening in storage, downloading, renaming, moving, deleting, sharing, adding to Datarooms, and replacing files (SharePoint only). - Sharing a web page as a link: turning a web page into a trackable CloudFiles link. ## 1. Accessing The Content Library From HubSpot When working inside HubSpot, you can access the Content Library through the "Select File/Folder" button in the App Card or through the "Add" button in the CloudFiles sidebar widget. From either entry point, you can perform several actions on files and folders using the three-dot menu beside each item. The available actions include: - Open in Cloud Storage: Opens the file or folder in its native editor, such as: - Google Docs → opens in Google Docs Editor - Microsoft Word (from SharePoint) → opens in Microsoft Online Editor - CloudFiles documents → opens in CloudFiles document viewer - Download: Saves the file or folder to your device. A PPTX file downloads as a PPTX file, a PDF downloads as a PDF, a DOCX downloads as a DOCX, and the same applies to Excel files. - Rename: Edit the name of the file or folder if supported by the connected storage. - Add to Dataroom: Adds the file or folder to a secure CloudFiles Dataroom for sharing and analytics. ![The Connect your library dialog with a SharePoint library open and the three-dot Actions menu expanded on a folder, showing Open, Download, Add to Dataroom and Rename.](https://media.help.cloudfiles.io/dm-file-folder-mgmt-hs/01.png) - Associate with HubSpot Record: Links the file to the current record by clicking "Add to (HubSpot Object)". It then appears in the CloudFiles app card on the record page, where it can be tracked and shared. For folders, you can browse their contents directly inside HubSpot and perform file operations. ![The Connect your library dialog with a Google Drive folder selected and the Add to Contact button highlighted at the bottom of the dialog.](https://media.help.cloudfiles.io/dm-file-folder-mgmt-hs/02.jpg) - Uploading Files: Upload files directly into your connected storage from within HubSpot. Open the desired folder, click the New button in the top-right corner, and choose Upload File, or drag and drop a file into the dialog box. Select a file from your computer and it is added to the chosen location. ![Two views of the Connect your library dialog: the New menu open showing New Folder and Upload File, and the drag and drop upload area it opens.](https://media.help.cloudfiles.io/dm-file-folder-mgmt-hs/03.jpg) ## 2. Accessing The Content Library From The CloudFiles for HubSpot App You can also access the Content Library by logging in with your HubSpot account at: https://hubspot.cloudfiles.io/ Once logged in, regardless of whether you are in Document Management or Document Sharing, selecting a library displays its full folder structure and files. Available operations depend on the storage platform selected. ![The Libraries screen in the CloudFiles for HubSpot app with a file's three-dot menu open, showing Open, Share, Download, Rename, Move and Delete.](https://media.help.cloudfiles.io/dm-file-folder-mgmt-hs/04.jpg) - Open in Storage Platform: Opens the selected file or folder directly in the respective platform: - Google Drive files open in the relevant Google app (for example Google Docs, Sheets or Slides). - SharePoint files open in the corresponding Microsoft 365 application (for example Word, Excel or PowerPoint online). - Preview (Files Only): Clicking a file thumbnail shows an in-app preview when supported, so you can view file contents without leaving the CloudFiles interface. The preview shows the file exactly as an external recipient would see it through a CloudFiles link. If you have just replaced a file, the preview can take a short while to process. Refresh the preview screen if you see a processing message. - Download: Downloads the selected file or folder to your local system. Folders are typically compressed into a ZIP file during download. A PPTX file downloads as a PPTX file, a PDF downloads as a PDF, a DOCX downloads as a DOCX, and the same applies to Excel files. - Add to Dataroom: Adds the selected file or folder to a CloudFiles Dataroom. This helps organize resources for secure sharing and tracking. - Share / Create Sharing Link: Generates a CloudFiles shareable link. You may set permissions and preferences depending on your Dataroom or sharing configuration. - Rename: Renames the selected file or folder within the storage platform. The updated name reflects across both CloudFiles and the storage provider. - Move: Moves the selected item to another folder within the same storage library. This does not change existing shareable links unless the storage platform enforces path-based restrictions. - Delete: Deletes the selected file or folder from the storage platform. Deleted items follow the native recycle or trash behavior of Google Drive or SharePoint. Deleting a file also breaks any CloudFiles links you have already shared for it: anyone opening an old link sees a file not found error, so check for active links before you delete. - Replace (SharePoint Files Only): For SharePoint files, this option lets you upload a newer version of a file while keeping its existing metadata, links and associations intact. This is useful when updating documents that have already been shared. Replacing updates the content on every link already shared for that file, so recipients holding an old link see the new version without you resending anything. Replacing does not change the file name; use Rename for that. ![The Libraries screen showing a SharePoint folder with a file's three-dot menu open, including the Replace file action alongside Open, Share, Download, Rename, Move and Delete.](https://media.help.cloudfiles.io/dm-file-folder-mgmt-hs/05.jpg) ## 3. Sharing a web page as a link You can turn a web page into a trackable CloudFiles link, so blog posts and articles sit in the same analytics as your documents. Choose Upload File, open the URL tab, paste the address, give it a name and upload. Each link tracks its own clicks and visits. ![Creating a CloudFiles link from a web page address using the URL tab of the upload dialog.](https://media.help.cloudfiles.io/dm-file-folder-mgmt-hs/08.webp) --- # Real-Time Sync https://help.cloudfiles.io/hubspot/real-time-sync # Real-Time Sync CloudFiles' Mirror Storage feature enables real-time sync so users can browse and interact with files from external cloud storage services inside HubSpot while always seeing the latest version. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles provides a real-time sync feature through what is called the Mirror Storage. This feature allows users to browse and interact with files from external cloud storage services inside HubSpot while always showing the latest version of those files. Real-time sync ensures that any change made in the source storage is immediately reflected in the CloudFiles content library without needing to re-upload or manually update anything. ## What Is Mirror Storage? Mirror Storage allows users to mirror the structure and contents of an external cloud storage account (like Google Drive or SharePoint) into the CloudFiles content library. Instead of importing static copies, this method keeps the files live and updated by referencing the originals directly. When a file is mirrored: - A direct reference to the original file is shown inside the content library. - The file name, content, metadata, and folder structure all reflect the current state of the original cloud file. - Any changes made in the external drive (e.g. rename, delete, update) are automatically synced into CloudFiles content library and visible inside cHubSpot. ## Sync Modes Mirrored files can work in two modes: - Synchronous (Real-Time) Sync: Every change in the external file is reflected in real time inside CloudFiles. - Manual Sync: Updates must be fetched manually if you choose not to use automatic syncing. This gives you more control over performance or version management. Both sync modes are supported across: - HubSpot - CloudFiles Webapp ## Supported Cloud Storage Platforms CloudFiles Mirror Storage supports the following platforms: - Google Drive - Microsoft SharePoint - OneDrive - Dropbox - Box - AWS S3 (including CloudFiles' own managed S3 storage) - Azure Blob Storage - Cloudflare R2 (for large-scale storage requirements) ![](https://media.help.cloudfiles.io/dm-real-time-sync-hs/01.jpg) Users can mirror entire folders or libraries from these platforms directly into CloudFiles. ## How to Set Up a Mirrored Library? The setup process is the same for all supported cloud platforms. Below is an example using Google Drive: - Sign in to your CloudFiles account. - Go to the Libraries tab. - Click the gear icon (⚙️) and make sure Google Drive is visible in your storage options. - Select Google Drive and click Connect. - Complete the authorization and grant required permissions. ![](https://media.help.cloudfiles.io/dm-real-time-sync-hs/02.gif) After connecting, CloudFiles will mirror your Google Drive contents inside the library interface. You can now: - Browse folders and files just like you would in Google Drive. - See updates immediately when files are changed externally. - Perform actions like previewing, linking to HubSpot records, or adding to a dataroom. > The same process applies for connecting SharePoint, OneDrive, Dropbox, and Box. ## Benefits of Real‑Time Sync with Mirror Storage - Always updated: Files are synced live, avoiding outdated links or attachments. - No duplication: Files are not imported or copied but only linked and reflected. - Secure access: CloudFiles respects the file permissions from your external storage. - Consistent interface: Browse mirrored content across HubSpot using the same interface and logic. - Supports automations: Synced files can be used in workflows and analytics, and even shared externally using secure CloudFiles links. ## Summary Real-time sync using Mirror Storage makes CloudFiles a powerful bridge between HubSpot and your cloud storage platforms. Instead of copying files, it mirrors them in their current state, keeping all content up to date across systems. Whether you’re linking files to CRM records, sharing them through datarooms, or simply browsing, real-time sync ensures that you always work with the most accurate version of your documents. --- # Permission Sets https://help.cloudfiles.io/hubspot/permission-sets # Permission Sets Permission control in HubSpot with CloudFiles allows you to manage who can view and access files linked from your external storage. > Kind: Guide · Updated: Jun 4, 2026 Permission control in HubSpot with CloudFiles allows you to manage who can view and access files linked from your external storage. It uses HubSpot's user permissions together with settings from your connected cloud library to control access. This article explains how permissions work, how they update in real time, how they can be automated, and how CloudFiles licenses affect file visibility. HubSpot's permission framework, enhanced by CloudFiles integration, offers robust control over file access: - User-based permissions ensure only appropriate users can view cloud-linked files. - Real-time updates keep permissions in sync across systems. - Automated permissions help manage and update access settings automatically. - License management determines who can use the CloudFiles features at all. Let's explore each permission in detail. ## 1. User-Based Permission When a user accesses files via the CloudFiles Content library in HubSpot, the access is enforced based on that user's HubSpot login and role. This is your first level of permission control: users only see files or widgets they are permitted to, per their HubSpot user permissions and any assigned CloudFiles license. ![](https://media.help.cloudfiles.io/dm-permission-sets-hs/01.jpg) HubSpot's permission system, based on roles and permission sets, dictates what CRM objects, tools, content, and file assets a user can view, edit, or manage. Meanwhile, CloudFiles licenses decide whether a user can see the CloudFiles App Card, so access to the file interface depends on having a license. ## 2. Real-Time Permission Handling Changes in permissions within your external cloud library (e.g., Google Drive, SharePoint, OneDrive, etc) are reflected immediately via CloudFiles. The integration provides 2-way live sync. Edits or access changes made externally appear in HubSpot without delay. ## 3. Automated Permission Handling CloudFiles supports automated permission updates via HubSpot workflows through the "Update Resource Permission" action. This action can be added to a workflow and triggered by specific conditions, such as a change in deal stage, to manage file or folder access without manual intervention. When configuring the action, you can: - Select the external library (Google Drive, SharePoint, Box, or Dropbox). - Specify the path to the resource (folder path or file name). - Choose the action: grant to give access or revoke to remove access. - If granting access, define the permission type (read or write). - Enter one or more email addresses, use contact emails from the HubSpot record, or allow access to everyone. ![](https://media.help.cloudfiles.io/dm-permission-sets-hs/02.png) For example, when a deal moves to "Contract Signed," a workflow can revoke access from previous collaborators and grant read access to the new deal owner automatically. The action also returns a status indicating whether the permission update succeeded or failed, allowing you to verify the process. For more details, see the article on Update Resource Permissions Action. ## 4. CloudFiles License Assignment Only users with an assigned CloudFiles license can access the CloudFiles App Card in HubSpot and view or manage associated files. Licenses can be assigned automatically when a user first interacts with the widget (if seats are available) or manually by an admin through the CloudFiles web app. Admins can also invite new users, assign roles (User or Admin), and change roles as needed. ![](https://media.help.cloudfiles.io/dm-permission-sets-hs/03.jpg) If a user without a license tries to use the widget, they will see an error stating that a license is required. This can be resolved by an admin assigning a license in the CloudFiles web app. For detailed steps on assigning licenses, inviting users, and managing roles, see: Managing Licenses and Roles in CloudFiles and Inviting Users and Managing Licenses in the CloudFiles App . --- # Connecting External Storage Accounts (Features) https://help.cloudfiles.io/hubspot/i_cA-connecting-external-storage-accounts # Connecting External Storage Accounts Explains how to connect external storage platforms (Google Drive, SharePoint, OneDrive, Dropbox, Microsoft Teams) to CloudFiles for centralized access via the Content Library. > Kind: Guide · Updated: Jun 4, 2026 CloudFiles allows you to connect external storage platforms such as Google Drive, SharePoint, OneDrive, Dropbox, and Microsoft Teams. Once connected, these storage accounts can be accessed directly from the CloudFiles Content Library, enabling centralized document access and consistent file management across systems. This article explains how to connect external storage accounts, how drives and sites appear in the Content Library, and how file and folder conflicts are handled in the CloudFiles app. ## Where to Connect External Storage Accounts? External storage accounts are connected and managed from the Integrations section in the CloudFiles app for HubSpot. Navigate to: Document Management → Integrations from the left hand side bar. ![](https://media.help.cloudfiles.io/dm-connect-storage-features-hs/01.jpg) To know more about integration users and how to connect them, refer to What is an Integration/System user? This page lists all supported storage providers, including Google Drive, SharePoint, OneDrive, Dropbox, and Microsoft Teams. From here, you can: - Select a storage provider to configure. - Connect or disconnect the Integration User for that provider. - Configure file and folder conflict behaviors specific to that integration. ![](https://media.help.cloudfiles.io/dm-connect-storage-features-hs/02.jpg) Each storage provider is configured independently, allowing different connection settings and conflict behaviors per platform. ### Accessing External Storage from the Content Library After an integration user is connected, users can browse external storage directly from the Content Library inside HubSpot ### Google Drive When browsing Google Drive, users can switch between the following locations: - My Drive: Files and folders owned by the connected user. - Shared drives: Team drives accessible to the user. - Shared with me: Files shared by other users. - Starred: Files and folders marked as starred. ![](https://media.help.cloudfiles.io/dm-connect-storage-features-hs/03.jpg) ### SharePoint When browsing SharePoint, users can switch between: - All sites: All SharePoint sites the user has access to. - Followed sites: SharePoint sites the user follows. ![](https://media.help.cloudfiles.io/dm-connect-storage-features-hs/04.jpg) Only SharePoint sites that are registered in CloudFiles are visible to users. ## File and Folder Conflict Behaviors Conflict behaviors control how CloudFiles handles situations where a file or folder with the same name already exists in the connected storage. These settings are configured per integration using the following navigation path: - Click Integrations from the left hand side bar. - Select the required integration. - Open Conflict Behaviors. ### Folder Conflict Behaviors The Folder conflict behavior defines how CloudFiles responds when a folder with the same name already exists in the connected storage. These settings apply across all supported storage integrations. No Op: Keeps the existing folder and ignores the new folder creation request. Rename: Creates the folder with a modified name by adding a numeric suffix. Example: Folder (1) Fail: Stops the operation and returns an error. ![](https://media.help.cloudfiles.io/dm-connect-storage-features-hs/05.png) ### File Conflict Behaviors The File conflict behavior defines how CloudFiles responds when a file with the same name already exists in the connected storage. These options are available for OneDrive, SharePoint, Dropbox, and Microsoft Teams. Rename: Creates the file with a modified name by adding a numeric suffix. Example: file (1).docx Replace: Overwrites the existing file with the new file. No Op: Keeps the existing file and ignores the new file creation request. Fail: Stops the operation and returns an error. ![](https://media.help.cloudfiles.io/dm-connect-storage-features-hs/06.png) ### Registering SharePoint Sites For SharePoint integrations, sites must be registered before they are visible to users in the Content Library. To register a SharePoint site: - Go to Document Management → Integrations → SharePoint - Scroll to the Register Sites section. - Enter the SharePoint site URL. - Click Register. ![](https://media.help.cloudfiles.io/dm-connect-storage-features-hs/07.png) You can register multiple SharePoint sites for the same organization. Thus, connecting external storage accounts in CloudFiles enables centralized access to files stored across multiple platforms. By configuring Integration Users, selecting the correct drives or sites, and defining file and folder conflict behaviors, organizations can maintain a controlled document management within CloudFiles. --- # Automations (HubSpot: Document Management) https://help.cloudfiles.io/hubspot/DiuD-automations # Automations CloudFiles workflow actions provide a structured way to handle document management tasks directly within HubSpot workflows. > Kind: Guide · Updated: Jun 4, 2026 CloudFiles workflow actions provide a structured way to handle document management tasks directly within HubSpot workflows. Instead of manually creating folders, linking them directly to the records, these actions ensure documents are organised and kept in sync with CRM activity. Each action is explained in detail with its purpose, configuration, outputs, and practical examples so users can understand how to apply them in real business processes. ## Create Folder Action This action is used to create a new folder within the selected storage system (e.g., Google Drive, SharePoint, Dropbox, OneDrive, Box) directly from HubSpot. ![](https://media.help.cloudfiles.io/dm-automations-hs/01.png) ### Configuration: - Specify the library or storage type. - Provide the destination path or parent folder ID. - Enter the folder name. ![](https://media.help.cloudfiles.io/dm-automations-hs/02.png) ### Output: The action returns a status message, either success or failure, depending on whether it executed correctly. ### Example: A sales team wants to keep all client-related documents organised by deal. Whenever a new deal is created in HubSpot, a folder should be created automatically in Google Drive. The folder is named after the deal title (e.g., “Acme Corp – Enterprise Plan”). This action ensures that every deal record in HubSpot has a corresponding folder in storage without requiring the sales team to create it manually. To learn more about this action, read the full article on Create Folder Action . ## Create Attachment This action is used to link an existing file or folder from connected storage to a HubSpot record. This action mirrors the manual process of adding documents through the CloudFiles App card. ![](https://media.help.cloudfiles.io/dm-automations-hs/03.png) ### Configuration: - Specify the library or storage type. - Provide the destination path to the file/folder. ![](https://media.help.cloudfiles.io/dm-automations-hs/04.png) ### Output: The action returns a status message, either success or failure, depending on whether it executed correctly. It also returns the ID of the newly created attachment. This can be used as the attachment ID in other actions, such as share attachment. ### Example: A customer success team wants every new customer contact to automatically have a “Welcome Kit” PDF attached. This PDF is stored in a central onboarding folder in OneDrive. When a new contact is added, the workflow uses the Create Attachment action to link the “Welcome Kit.pdf” file to the contact record. The success manager can immediately see the file in HubSpot without searching for it in storage. To learn more about this action, read the full article on Create Attachment Action ## Delete Attachment This action is used to remove a previously attached file or folder from a HubSpot record without deleting the original resource from storage. ![](https://media.help.cloudfiles.io/dm-automations-hs/05.png) ### Configuration: Identify the specific attachment ID that you want to delete. ![](https://media.help.cloudfiles.io/dm-automations-hs/06.png) ### Output: The action returns a status message, either success or failure, depending on whether it executed correctly. ### Example: A contracts team attaches proposal files to deal records for review. Once a deal reaches the “Contract Signed” stage, they no longer want the outdated draft proposals visible in HubSpot. The workflow automatically uses the Delete Attachment action to remove all draft proposals from the deal record. The drafts remain stored in the “Archive” folder in Dropbox, but HubSpot shows only the finalised contract. To learn more about this action, read the full article on Delete Attachment. ## Copy Resource This action is used to create a copy of an existing file and place it in a specified destination within the selected storage system (e.g., Google Drive, SharePoint, Dropbox, OneDrive, Box) directly from HubSpot. The copied file can also be renamed during the process. ![](https://media.help.cloudfiles.io/dm-automations-hs/07.png) ### Configuration: - Specify the library or storage type where the source file exists. - Provide the full path to the source file, including the file name and extension. - Provide the destination path, including the file name (this allows you to rename the file while copying). - If applicable, specify the Drive ID or Shared Drive for the source or destination storage. ![](https://media.help.cloudfiles.io/dm-automations-hs/08.png) ### Output: The action returns a status message, either success or failure, depending on whether it executed correctly. ### Example: A sales team uses a standard proposal template stored in Google Drive. When a deal reaches the “Proposal Sent” stage in HubSpot, a copy of the template is automatically created in a deal-specific folder and renamed using the deal name (e.g., “Globex Ltd – Sales Proposal.pdf”). This ensures each deal has its own editable copy of the proposal without overwriting the original template. To learn more about this action, read the full article on Copy Resource Action . ## Delete Resource This action is used to permanently delete the file or folder from the connected cloud storage. ![](https://media.help.cloudfiles.io/dm-automations-hs/09.png) ### Configuration: - Specify the library or storage type. - Provide the destination path to the resource. ![](https://media.help.cloudfiles.io/dm-automations-hs/10.png) ### Output: The action returns a status message, either success or failure, depending on whether it executed correctly. ### Example: A project team stores working notes and temporary data files in a “Work In Progress” folder. When the project reaches completion and all files are finalised, the workflow runs a Delete Resource action to remove temporary files from storage. This keeps the cloud library clean and ensures only final deliverables remain accessible. To learn more about this action, read the full article on Delete Resource Action . ## Move Resource This action is used to move an existing file or folder from one location in the storage system to another. ![](https://media.help.cloudfiles.io/dm-automations-hs/11.png) ### Configuration: - Specify the library or storage type. - Provide the path to the resource and the path to the destination. ![](https://media.help.cloudfiles.io/dm-automations-hs/12.png) ### Output: The action returns a status message, either success or failure, depending on whether it executed correctly. ### Example: A marketing team drafts campaign assets in a shared “Drafts” folder. Once the campaign’s deal in HubSpot is moved to the “Approved” stage, the workflow runs the Move Resource action. The assets are automatically relocated from /Marketing/Drafts to /Marketing/Approved Campaigns. This prevents confusion over which files are finalized and ready for use. To learn more about this action, read the full article on Move Resource Action . ## Update Resource This action is used to update metadata, such as renaming files and folders or adding descriptions. ![](https://media.help.cloudfiles.io/dm-automations-hs/13.png) ### Configuration: - Specify the library or storage type. - Specify the path to the resource and property to update. ![](https://media.help.cloudfiles.io/dm-automations-hs/14.png) ### Output: The action returns a status message, either success or failure, depending on whether it executed correctly. ### Example: A sales team uploads multiple versions of a proposal file during negotiations. When a deal is marked as “Closed Won,” the workflow automatically runs Update Resource on the final file, renaming it from “Proposal_v3.pdf” to “Proposal_Final.pdf.” This ensures the storage system always reflects the current status of the deal, and anyone accessing the file knows it is the finalised version. To learn more about this action, read the full article on Update Resource Action . Therefore, using these flow actions, teams eliminate repetitive manual steps and ensure that records always reflect the latest files, and maintain a clean, well-structured storage system. --- # Automated Folder Hierarchies https://help.cloudfiles.io/hubspot/automated-folder-hierarchies # Automated Folder Hierarchies Guide to creating automated parent and sub-folder hierarchies in external storage directly from a HubSpot record using CloudFiles flow actions. > Kind: Tutorial · Updated: Jun 4, 2026 ## What to Expect By the end of this tutorial, you can expect to - - Have an Automated Parent Folder for a HubSpot record (like Company) when it is created - Have desired numbers and hierarchy of sub-folders within the Parent folder automatically - You will be able to attach these folders and sub-folders to your record - You will also be able to access these folders within your HubSpot record within CloudFiles connected folder widget. The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in under 10 minutes. ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/01.gif) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration . ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/02.png) ### Connect your storage Log in to your external storage of choice, such as Google Drive, SharePoint, etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Connecting External Storage Accounts article for more information. ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/03.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/04.gif) After connecting the desired storage, we will proceed to create company-based workflow which will be triggered when a new company is registered. Here’s how our final workflow looks like. We will detail these elements in the sections below. ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/05.png) ## 2 - Create Company-based Workflow Create a new company-based workflow from scratch and select the trigger to fire when a new company is created as shown in the GIF below. ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/06.gif) ## 3 - Create Parent Folder using ‘Create Folder’ Action Create Folder action can be used to create folders in any location on any cloud storage platform from HubSpot flow action. We will use this action to first create the Parent folder in which sub-folders will be created automatically. To use the “Create Folder” action, simply click on add button and search for ‘Create Folder’ as shown below. Once you add this action, it will ask you to fill in certain parameters. ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/07.gif) This action requires a few parameters. The Library parameter is the desired Cloud storage where you wish to create the folder. Select the desired storage from the drop down field. The Folder name is the name you wish to give your created Folder. We have simply used the Company’s name but you can also create a complex text formula variable as well. The GIF below shows how to populate the Library & Folder name parameter. ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/08.gif) We also need to enter values for Shared Drive ID & Path to Destination. These are - - Shared Drive ID - This is important for google drive & sharepoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. - Path to Destination - This specifies the destination folder in which this new folder will be created. These parameters can be easily copied from CloudFiles app library. Follow these steps - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to your CloudFiles storage. - Under the libraries tab, navigate to folder where you would like to store your files or simply create new folder. - Copy the parameter from the meta data on the right side of the screen. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/09.gif) For a detailed description of the Create Folder action, refer to the Create Folder detailed guide. Here’s how our final Create Folder action looks like - ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/10.png) ## 4- Create Sub-Folders using ‘Create Folder‘ Action To create sub-folders, we can simply use the same ‘Create Folder’ action that we used above with a couple of simple tweaks. - Change the ‘Folder Name’ to reflect the sub-folder you want to create. We are creating ‘Proposals’ and ‘Contracts’ sub-folder inside our Company folder. - Change the ‘Path to Destination’ to exact and full path to Parent folder name that we created in the previous action. This way, this new folder will get created inside the account’s folder we created previously. Here’s how your second Create Folder action should look like. ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/11.png) You can choose to have as many sub folders as you want. Simply duplicate the Create Folder action. You can also create sub-sub-folders and even deeper hierarchies using this method. ## 4 - Show Parent Folder on Company Record using ‘Create Attachment’ Action The Create Attachment action is used to associate created folder to HubSpot records. Attaching (or associating) our newly created company folder is important since this will enable us to see and operate on the folder contents right from the HubSpot record. To use this action, simply click on add button and search for ‘Create Attachment’ as shown below. Once you add this action, it will ask you to fill in certain parameters. “Shared Drive ID” and “Library” parameters will be same as above. The “Path to folder” will be the exact and full path of the newly created parent folder. You can simply copy from the meta data info in the CloudFiles Library using the same steps as specified in the shared drive ID section above. Here’s how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/12.png) ## 5 - Test the Automated Folders in Action Now that everything is set up, let's test our flow. Simply create a new Company in HubSpot. The workflow may take a few seconds to execute, so refresh the page if required. Navigate to the CloudFiles Connected Folder widget tab in the middle, you will be able to see the company folder and it's sub-folders. This is shown in the GIF below - ![](https://media.help.cloudfiles.io/tut-auto-folder-hierarchies-hs/13.gif) --- # Automated Internal Notifications https://help.cloudfiles.io/hubspot/automated-internal-notifications # Automated Internal Notifications Learn how to notify your team by generating links for files uploaded to HubSpot using the HubSpot-CloudFiles integration. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, you'll learn how to notify your team by generating links for files uploaded to HubSpot using the HubSpot-CloudFiles integration. We'll guide you through each step to ensure your files are uploaded and shared with your team, making it easier to manage and track the distribution of important assets within your team. ## What to Expect By the end of this tutorial, you will: - Know how to generate secure links for files uploaded to HubSpot. - Have a clear process for notifying team members when files are shared. The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in under 5 minutes. ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/01.gif) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/02.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Connecting External Storage Accounts article for more information. ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/03.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/04.gif) After connecting the desired storage, we will proceed to create deal -based workflow which will be triggered when a file is attached to the CloudFiles Connected Folder widget of the particular Deal record. Here’s how our final workflow looks like. We will detail these elements in the sections below. ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/05.png) ## 2 - Create Deal-based Workflow Create a new deal-based workflow and set the trigger to activate when the number of resources attached to the CloudFiles Connected Folder widget is greater than or equal to one. We've utilized the CloudFiles properties, 'Number of resources attached,' so that the workflow is triggered whenever a file is attached to a specific deal record. ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/06.gif) ## 3 - Fetch the attachment details of the file with the 'Get Attachment Details' Action The Get Attachment Details Action retrieves information about attachments, which can then be used for process automation. An attachment links a file, folder, or dataroom to a HubSpot record, and this link appears on the CloudFiles Connected Folder widget in the middle of the HubSpot record. To use the “Get Attachment Details” action, click the add button and search for ‘Get Attachment Details.’ After adding the action, you will need to fill in only one parameter: - Attachments to Fetch - This is a selector to specify if only the latest attachment's details needs to be fetched or if details of all attachments need to be fetched. For a detailed description of the Get Attachment Details action, refer to the Get Attachment Details Action detailed guide. Here’s how our final Get Attachment Details action looks like - ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/07.gif) ## 4 - Create a shareable link for the file using the ‘Share Attachment’ action The Share Attachment action allows you to share attachments through HubSpot workflows. This process is similar to manually creating a sharing link for a file, folder, or dataroom from a HubSpot record. To use this action, click the add button and search for ‘Share Attachment.’ This action requires only one parameter: - Attachment to be shared, which can be obtained from the return value of the previous Get Attachment Details action, labelled ‘New Attachment ID.’ Here’s how our final Share Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/08.gif) ## 5 - Set the sharing link to deal property using the ‘Edit Record’ Action In this step, we will set the link created in the previous step into a deal property. First, create a single-line text property in the HubSpot Deal Settings; we’ll call it ‘Shareable link.’ We will use the Edit Record action to transfer the shared link to this property. For the 'Property to set' parameter, choose the property you created and then set the custom property to the URL output derived from the Share Attachment. The GIF below illustrates how to configure the Edit Record action. ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/09.gif) ## 6 - Email the Deal Owner the link via HubSpot's 'Send internal email notification' Action Send an internal email to specific users, teams, or owners. This email notification offers rich text formatting options similar to other HubSpot editors. You can customize the text, add images, and use workflow-specific tokens. I selected the Deal owner under the "Send to Existing Owners" parameter and included the "Shareable Link" property we created earlier in the body, along with the message. Here's an example of how the completed Send Internal email notification action should look: ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/10.png) ## 7 - Test the Workflow To test the workflow, create a new deal or open an existing deal record. In the CloudFiles Connected Folder widget in the middle, attach a specific file, then wait a minute for the workflow to execute. Refresh the page, and if you set yourself as the deal owner, you will receive the link to the attached file in your email. The GIF below provides a visual guide for these steps. ![](https://media.help.cloudfiles.io/tut-auto-notifications-hs/11.gif) --- # Auto Create Contacts from File Views https://help.cloudfiles.io/hubspot/auto-create-contacts-from-file-views # Auto Create Contacts from File Views Learn how to auto-capture and update HubSpot contacts using CloudFiles' Soft-Gated and No-Gate Capture methods when files are viewed. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, we’ll explore how to capture contacts in HubSpot when files are viewed using CloudFiles’ Soft-Gated and No-Gate Capture methods through the CloudFiles - HubSpot Integration, allowing for efficient contact tracking in both social media and direct outreach scenarios. ## What to expect: By the end of this tutorial, you will be able to: - Set up soft-gated capture methods for document sharing. - Create personalized links for targeted document access. - Automatically capture and update contacts in HubSpot when files are viewed. ## Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ## Capture Contacts with Soft-Gating - Create a test HubSpot record. - Navigate to the record and locate the CloudFiles widget in the sidebar. - Add a file in any supported format (e.g., DOCX, XLS) from cloud storage and create a sharing link. - In the Link Security settings, enable "Require Email." This ensures that viewers will be required to enter their email addresses before accessing the document. (For more details, refer to the Link Security Settings article.) - Share the link via email, on your website's CTAs, or directly with specific clients. - When clients access the link, they will be prompted to enter their email address. - CloudFiles will check the entered email against your HubSpot contact list. If no contact matches, a new one will be created. The GIF below demonstrates the steps involved along with the expected output. ![](https://media.help.cloudfiles.io/tut-auto-create-contacts-hs/01.gif) ## Capture Contacts with No-Gating - Create a test record (it can be a contact, deal, or company). - Navigate to the record and locate the CloudFiles widget in the sidebar. - Upload a file in any supported format (e.g., DOCX, XLS) from cloud storage. - Click on “Actions” and click on "Get Link" from the dialog. - Append the contact's email to the link in the following format: ?email={{contact.email}} - Share the personalized link via email or your preferred method. - When clients access the link, they will be shown the file directly. CloudFiles will log the specific email ID from the URL. - CloudFiles will check the entered email against your HubSpot contact list. If no contact matches, a new one will be created. The GIF below demonstrates the steps involved along with the expected output. ![](https://media.help.cloudfiles.io/tut-auto-create-contacts-hs/02.gif) With these steps, you can now capture contacts in HubSpot using both soft-gating and no-gating options in CloudFiles. Soft-gating works well for broad sharing, while no-gating is suited for direct, personalized links. This setup allows for easier contact tracking and more organized document engagement within HubSpot. --- # Collecting sensitive documents https://help.cloudfiles.io/hubspot/collecting-sensitive-documents # Collecting sensitive documents Learn to build a compliant document collection workflow in HubSpot using CloudFiles: set up a secure dataroom, request sensitive documents, and auto-organize them into folders in your external storage. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, we will explore how you can create a document collection portal for sensitive documents in a compliant way using HubSpot-CloudFiles integration. Learn to create workflows that set up a secure dataroom, collect documents systematically, and organize them into folders stored in your preferred external storage. ## What To Expect By the end of this tutorial, you can expect to - - Have an external Dataroom for sensitive documents collection within HubSpot. - Have a sharing link for customers to access and share the dataroom. - Have automated folder creation in external storage of your choice to store these sensitive documents. The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in under 10 minutes. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/01.gif) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/02.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/03.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/04.gif) After connecting the desired storage, we will proceed to create deal based workflow which will be triggered when the deal reaches a certain stage. Here's how our final workflow looks like. We will detail these elements in the sections below. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/05.png) ## 2 - Create Deal Workflow Create a new deal based workflow from scratch and select the trigger to fire when the deal reaches a certain stage as shown in the GIF below. You can chose any stage as the deal stage. We have selected 'Documents Collect' as the deal stage to trigger the workflow. This is a custom stage that we created. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/06.gif) ## 3 - Create automated Internal Folder for storing sensitive documents using 'Create Folder' Action Create Folder action can be used to create folders in any location on any cloud storage platform from HubSpot flow action. We will use this action to first create the folder that will store the sensitive documents collected from the datatoom. To use the "Create Folder" action, simply click on add button and search for 'Create Folder' as shown below. Once you add this action, it will ask you to fill in certain parameters. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/07.gif) This action requires a few parameters. The Library parameter is the desired Cloud storage where you wish to create the folder. Select the desired storage from the drop down field. The Folder name is the name you wish to give your created Folder. We simply use the Deal's name but you can also create a complex text formula variable as well. The GIF below shows how to populate the Library & Folder name parameter. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/08.gif) We also need to enter values for Shared Drive ID & Path to Destination. These are - - Shared Drive ID - This is important for google drive & sharepoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. - Path to Destination - This specifies the destination folder in which this new folder will be created. These parameters can be easily copied from CloudFiles app library. Follow these steps - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to your CloudFiles storage. - Under the libraries tab, navigate to folder where you would like to store your files or simply create new folder. - Copy the parameter from the meta data on the right side of the screen. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/09.gif) For a detailed description of the Create Folder action, refer to the Create Folder detailed guide. Here's how our final Create Folder action looks like - ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/10.png) ## 4 - Show Folder on Record using 'Create Attachment' Action The Create Attachment action is used to associate created folder to HubSpot records. Attaching (or associating) our newly created folder is important since this will enable us to see and operate on the folder contents right from the HubSpot record. To use this action, simply click on add button and search for 'Create Attachment' as shown below. Once you add this action, it will ask you to fill in certain parameters. "Shared Drive ID" and "Library" parameters will be same as above. The "Path to folder" will be the exact and full path of the newly created folder. You can simply copy from the meta data info in the CloudFiles Library using the same steps as specified in the shared drive ID section above. Here's how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/11.png) ## 5 - Create Dataroom using 'Create Dataroom' action A Dataroom is a file portal, where you can request files from your customers. We will use "Create Dataroom" action to create a file request portal where customers can upload their sensitive documents. To use this action, simply click on add button and search for 'Create Dataroom' as shown below. Once you add this action, it will ask you to fill in certain parameters. "Name" is the name of dataroom that appears on the dataroom, "Description" is an optional field that can be used to give additional description for conveying more information. To read more about this action, visit "Create Dataroom Action". Refer to the GIF below to get a visual understanding of above steps. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/12.gif) This is how your final Create Dataroom action looks like - ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/13.png) ## 6 - Show Dataroom on Record using 'Create Attachment' Action The Create Attachment action can also be used to associate created dataroom to HubSpot records. To use this action, simply click on add button and search for 'Create Attachment' as shown below. After you add this action, you will have to fill 3 parameters. For attaching a dataoom, Library parameter should always be 'CloudFiles'. Resource type will be 'Dataroom' and Resource ID will be 'New Dataroom ID' derived from the output of previous create Dataroom action. Refer to the GIF below to have a visual understanding of this steps - ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/14.gif) Here's how our final Create Attachment action for Dataroom looks like - ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/15.png) Once the Dataroom is created and associated to the record, we will create file request block to request sensitive documents within the dataroom. ## 7 - Create File Request block using 'Add to Dataroom' The 'Add to Dataroom' action enables you to insert files, folders and file request blocks to your CloudFiles datarooms using a workflow. In this tutorial, We will use this action once to create file request blocks for KYC documents folder. You can add this action as many times as needed to request the required files. To use this action, simply click on add button and search for 'Add to Dataroom' as shown below. Once you add this action, it will ask you to fill in certain parameters. "Shared Drive ID" and "Library" parameters will be same as above. For remaining parameters, refer below - - Dataroom ID - New Dataroom ID derived from the output of 'Create Dataroom' action - Type - File Request - Name - Name of documents requested - Add to destination - Yes - Path to destination folder - full and exact folder path of sub-folder created earlier - Description (Optional) - Describe the requested documents Refer to the GIF below to have a visual understanding of this steps - ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/16.gif) Here's how our final Add to Datatoom action looks like - ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/17.png) ## 8 - Create shareable link for Dataroom using 'Share Attachment' action The Share Attachment action enables you to share attachments using HubSpot workflows. Sharing an attachment is exactly the same as manually creating a sharing link of a file / folder / dataroom from HubSpot record. To use this action, simply click on add button and search for 'Share Attachment' as shown below. This action has only one parameter that can be set to specify the Attachment to be shared. You can derive this from the return value of previous Create Attachment action - 'New Attachment ID'. This is what the final Share Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/18.png) ## 9 - Set the sharing link to deal property using 'Edit Record' Action In this step, we will set the link created in the last step to a deal property. For this, first create a single-line text property in the HubSpot Deal Settings. We created a property called 'Sensitive Doc Collection Link'. To set the shared link to the above property, we will use the Edit Record action. For the 'Property to set' parameter, we will choose 'Sensitive Doc Collection Link' and under 'Sensitive Doc Collection Link' parameter we will set it to the output 'URL' of the last action. The GIF below shows the configuration for the Edit Record action. ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/19.gif) That's it. Save and activate the flow. In the next section, we will test the workflow and check the Analytics. ## Test the Workflow To test the workflow, create a new deal and set the stage to the one used in the trigger. Give it a minute to execute. Refresh the page. You will be able to see the dataroom link in the deal property and also the folder attachment in the CloudFiles Connected Folder widget in the right side. Click on the dataroom link and upload document(s), as requested. Once you have uploaded the documents, you will be able to see that 'Upload Checklist' property has been updated. Upon all documents upload, you will receive an e-mail notification. Check the uploaded documents in the internal folder within HubSpot by navigating to CloudFiles Connected Folder widget. You can uncheck a particular document in case you want to request a re-upload. Once you are satisfied with the uploaded documents, mark the 'Document Upload Completed' property to 'Yes' to confirm the approval process. An e-mail will be triggered to customers that the documents upload has been completed. These steps have been illustrated in the GIF below for a better understanding - ![](https://media.help.cloudfiles.io/tut-collecting-sensitive-docs-hs/20.gif) --- # Collect anonymous analytics on documents https://help.cloudfiles.io/hubspot/collect-anonymous-analytics-on-documents # Collect anonymous analytics on documents Learn how to publicly share PDFs and documents via HubSpot-CloudFiles integration and collect anonymous analytics, including building HubSpot dashboards from the collected view data. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, we explore how you can publicly share PDFs and other documents stored in any cloud storage across various marketing channels such as social media, landing pages, banners, ads etc. through HubSpot - CloudFiles integration. Additionally, the integration also collects anonymous analytics and reports on it using HubSpot dashboards. ## What To Expect By the end of this tutorial, you can expect to - - Have a publicly shareable link of the PDF or any document stored in any cloud storage - You would see detailed analytics on the CloudFiles Dashboard - You will also have a HubSpot dashboard to see overall analytics The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in 5 to 10 minutes. ![](https://media.help.cloudfiles.io/tut-anonymous-analytics-hs/01.gif) ## Tutorial Video Refer to the quick video if you would like to have a visual guide for this tutorial. Read on if you prefer textual content. [Watch video](https://www.youtube.com/watch?v=npEiHcJCLEg) ## 1 - Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration ![](https://media.help.cloudfiles.io/tut-anonymous-analytics-hs/02.png) ## 2 - Create a CloudFiles Link CloudFiles links are secure publicly shareable links that can be used to share your PDFs and other documents. You can create the link using the CloudFiles Dashboard. To go to the CloudFiles Dashboard from HubSpot, go to any Contact record, locate the CloudFiles widget and click on the CloudFiles hyperlink. This is shown in the GIF below. Once you are on the dashboard, you can locate the file and create the link. ![](https://media.help.cloudfiles.io/tut-anonymous-analytics-hs/03.gif) Once you are on the CloudFiles Dashboard, click on the ‘Libraries’ tab on the top. Then, on the left sidebar, click on the HubSpot Storage option. This will show you all of your HubSpot files. In case you want to use another storage platform, you can do so. Simply login with your respective account and you should see all of your files. Locate the file that you want to share and then click on the “Create Link” button and name the link for your reference. Once the link is created, copy it for the next step. The process of link creation is shown in the GIF below. ![](https://media.help.cloudfiles.io/tut-anonymous-analytics-hs/04.gif) While not mandatory for this use case, explore configuration settings during the link creation process if you want to customize any aspects. You can also enable custom branding & domain for this link. Read Branding to know more. ## 3 - Check Analytics on CloudFiles Open the link that was created and spend a few seconds on your asset for the analytics to build up. Scroll through so you can get richer analytics. Refresh the page so you collect multiple views. Once you feel enough analytics has been collected, go back to your HubSpot. Come back to the link settings page in the CloudFiles dashboard from where you had copied the link. Check the Analytics section to view the analytics outside HubSpot. You will get detailed drilled down analytics for each view. From the analytics dialog, you can get details such as view count, downloads, location, time spent, pagewise analytics etc. ![](https://media.help.cloudfiles.io/tut-anonymous-analytics-hs/05.png) ## 4 - Create Analytics Dashboard CloudFiles can create File view custom object records in HubSpot for each view that happens in the file. There is various information available in this record including view date, time spent, scroll depth and more... You can create a variety of charts & reports using this data. ### Check HubSpot Custom Object Support In order to create document analytics dashboard, you need access to HubSpot Custom Objects. To see if you have access to this feature, look for a 'Custom Objects' option in the Contacts dropdown menu as shown below. ![](https://media.help.cloudfiles.io/tut-anonymous-analytics-hs/06.png) > Please note, you need to have access to Custom Objects in HubSpot in order to create CloudFiles based engagement reports & dashboards. ### Enable CloudFiles Custom Object Feature You also need to enable the Custom Object feature in CloudFiles so we can automatically start creating these in your HubSpot account. This setting can be found on the CloudFiles app dashboard in Settings > Integrations > HubSpot > Enable Custom Object toggle. If you face issues enabling this feature, reach out to us through chat on the bottom right. Once the feature is enabled, you should see the 'CloudFiles Views' custom object created in the Contacts menu of HubSpot. You would also see some records pre-created for the views that you have already collected on files. You can view more information on any record by clicking on it. ![](https://media.help.cloudfiles.io/tut-anonymous-analytics-hs/07.png) ### Create a File View Report To create your first report, go to your HubSpot and follow the steps below - - Go to Reporting > Reports > My Reports - Click Create Report and choose Single Object report - Choose CloudFiles Views object on the next screen - You will see the standard HubSpot report builder with data and visualization tab - Once you are done creating the report, name and save it. You can use these help articles from HubSpot to learn about the type of reports you can create with HubSpot. The GIF below shows the basic process in a nutshell. ![](https://media.help.cloudfiles.io/tut-anonymous-analytics-hs/08.gif) ### Create a File View Dashboard You can now use the report(s) in dashboard and graphically see the data in a collated format. To create a file engagement dashboard, simply go to Reporting > Dashboard > New dashboards and start adding the report(s) you created in previous section. There are various visualization settings that HubSpot provides that can be used to plot insightful charts. Using these, we have plotted the following charts. ![](https://media.help.cloudfiles.io/tut-anonymous-analytics-hs/09.png) ## Beyond This Tutorial In this tutorial, we covered a very specific way of sharing a file publicly through website banners, social media sites, ads, one-on-one sales sharing etc. CloudFiles can, in one way or the other, collect personalized analytics for each of these unique scenarios and create reports dashboards as illustrated above. For marketers, collateral sharing through e-mail and checking analytics is also an important use-case. To know how you can share files in E-mails , check out our tutorial on E-mail Attachment Tracking Dashboard For Marketers. To know more about what CloudFiles can do and how you can fit the app as per your unique use-case, book a call with us. --- # Custom File Analytics Dashboard https://help.cloudfiles.io/hubspot/custom-file-analytics-dashboard # Custom File Analytics Dashboard This tutorial explains how to create and use the CloudFiles custom object in HubSpot to track and analyze file views. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, we will explore how to create and use the CloudFiles custom object in HubSpot to track and analyze file views. It provides a step-by-step guide to setting up the custom object and accessing detailed analytics to understand file engagement better. ## What to Expect: By the end of this tutorial, you will be able to:- - Set up the CloudFiles custom object in HubSpot. - Track detailed analytics on file views. The picture below shows the expected output. ![](https://media.help.cloudfiles.io/tut-custom-analytics-dashboard-hs/01.png) ## Steps to Create a Custom Object in HubSpot ### 1 - Create a Private App in HubSpot: - Go to Settings in HubSpot. - Navigate to Integrations under Account Management. - Select Private Apps and click Create. - Give any name to the app. The GIF below demonstrates the steps for setting up. ![](https://media.help.cloudfiles.io/tut-custom-analytics-dashboard-hs/02.gif) ### 2 - Set Scopes for the Private App: - Go to the Scopes section in the top navigation. - Add a new scope. Use crm.schemas.custom for custom object creation. - Enable both write and read permissions. - Click on Update. The GIF below demonstrates the steps. ![](https://media.help.cloudfiles.io/tut-custom-analytics-dashboard-hs/03.gif) ### 3 - Create and Configure the App: - Click Create App in the top-right corner. - Once the app is created, click on Show Token to generate an access token. - Copy the access token for API usage. The GIF below demonstrates the steps. ![](https://media.help.cloudfiles.io/tut-custom-analytics-dashboard-hs/04.gif) ### 4 - Share the Token for API Usage: - Copy the access token and You can email the token to us at support@cloudfiles.io - We will use the token to push the custom object schema from our end. In conclusion, using the CloudFiles custom object to track file view analytics provides valuable insights into file engagement. Following this tutorial ensures that you can efficiently set up and utilise this feature in HubSpot. To know more about what CloudFiles can do and how you can fit the app as per your unique use case, book a call with us. --- # Data Consent and Privacy Notice https://help.cloudfiles.io/hubspot/data-consent-and-privacy-notice # Data Consent and Privacy Notice This tutorial provides step-by-step instructions on how to set up data collection consent and ensure your privacy policy is easily accessible to your users. > Kind: Tutorial · Updated: Jun 4, 2026 Data privacy and compliance are critical in today's digital environment. This tutorial will provide step-by-step instructions on how to set up data collection consent and ensure your privacy policy is easily accessible to your users. ## What to Expect : By the end of this tutorial, you can expect to - - Enable end-user data collection consent to inform users before they provide personal information. - Display a Privacy Policy link at the bottom of the CloudFiles viewer for easy access by users. The GIF below shows the expected output. ![](https://media.help.cloudfiles.io/tut-data-consent-privacy-hs/01.gif) ## Steps: - Open any HubSpot contact record and go to the CloudFiles Dashboard. - Click the Document Sharing tab in the top navigation bar. - In the left sidebar, select Document Sharing Settings. - Choose Compliances. - Toggle on Enable end-user data collection consent. - Create a clear, explicit consent statement for end users to agree to before entering personal information (e.g., email). Include a reference to the NDA and provide a link to it. - Add a link to the Privacy Policy, ensuring it’s visible at the bottom of the CloudFiles viewer for easy access by end users. The GIF below illustrates the steps in detail. ![](https://media.help.cloudfiles.io/tut-data-consent-privacy-hs/02.gif) By enabling user consent and linking to your privacy policy, you ensure transparency and compliance with data regulations. For further questions, reach out to us support@cloudfiles.io. --- # Document approval process https://help.cloudfiles.io/hubspot/document-approval-process # Document approval process Learn how to create a document approval process in HubSpot using the HubSpot-CloudFiles integration—setting up a secure dataroom, a document checklist, and email/Slack notifications for upload completion and re-upload requests. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, we will explore how you can create a document approval process within HubSpot using HubSpot-CloudFiles integration. Learn how to create workflows that set up a secure dataroom, collect documents systematically, and organize them into folders stored in your preferred external storage. Create a checklist of these documents, trigger email/Slack notifications upon upload completion. Vet the document and send reminders to customers for any re-upload. ## What To Expect By the end of this tutorial, you can expect to - - Have an external Dataroom to collect and organize documents within HubSpot - Have a checklist to keep a track of required documents - Trigger e-mail notification to notify customer about document upload completion or documents re-upload The image below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in under 10 minutes. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/01.png) Refer to the GIF below to have a visual understanding of this tutorial’s expected outcome - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/02.gif) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/03.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/04.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/05.gif) After connecting the desired storage, we will proceed to create Create Documents Upload Dataroom with shareable link and a checklist to automatically mark the documents upload completion. We’ll be creating multiple workflows for this which is detailed in the sections below - ## Creating Workflow To Get Document Collection Link We will create a workflow to create a document request dataroom with shareable link that can be shared with the customers. The uploaded documents will be stored in an internal folder which will be accessible within HubSpot. This is how the final workflow looks like - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/06.png) The details of the workflow has been given below - ### 1 - Create Contact-based Workflow We will create a contact property that will fire the trigger for document collection workflow. For this, create a single checkbox property in the HubSpot Contact Settings. We have created a property called ‘Request Documents’. Create a new contact-based workflow from scratch and select the trigger to fire ‘when filter criteria is met’. Set the property as ‘Request Documents’ and set it to ‘Yes’ to activate the trigger as shown in the GIF below. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/07.gif) ### 2- Create Folder using ‘Create Folder’ Action Create Folder action can be used to create folders in any location on any cloud storage platform from HubSpot flow action. We will use this action to first create the folder that will store the sensitive documents collected from the datatoom. To use the “Create Folder” action, simply click on add button and search for ‘Create Folder’ as shown below. Once you add this action, it will ask you to fill in certain parameters. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/08.gif) This action requires a few parameters. The Library parameter is the desired Cloud storage where you wish to create the folder. Select the desired storage from the drop down field. The Folder name is the name you wish to give your created Folder. We simply use the Company’s name but you can also create a complex text formula variable as well. The GIF below shows how to populate the Library & Folder name parameter. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/09.gif) We also need to enter values for Shared Drive ID & Path to Destination. These are - - Shared Drive ID - This is important for google drive & sharepoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. - Path to Destination - This specifies the destination folder in which this new folder will be created. These parameters can be easily copied from CloudFiles app library. Follow these steps - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to your CloudFiles storage. - Under the libraries tab, navigate to folder where you would like to store your files or simply create new folder. - Copy the parameter from the meta data on the right side of the screen. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/10.gif) For a detailed description of the Create Folder action, refer to the Create Folder detailed guide. Here’s how our final Create Folder action looks like - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/11.png) ### 3 - Show Folder on Record using ‘Create Attachment’ Action The Create Attachment action is used to associate created folder to HubSpot records. Attaching (or associating) our newly created folder is important since this will enable us to see and operate on the folder contents right from the HubSpot record. To use this action, simply click on add button and search for ‘Create Attachment’ as shown below. Once you add this action, it will ask you to fill in certain parameters. “Shared Drive ID” and “Library” parameters will be same as above. The “Path to folder” will be the exact and full path of the newly created folder. You can simply copy from the meta data info in the CloudFiles Library using the same steps as specified in the shared drive ID section above. Here’s how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/12.png) ### 4 - Create Dataroom using ‘Create Dataroom’ action A Dataroom is a file portal, where you can request files from your customers. We will use “Create Dataroom” action to create a documents upload portal where customers can upload their requested documents. To use this action, simply click on add button and search for ‘Create Dataroom’ as shown below. Once you add this action, it will ask you to fill in certain parameters. “Name” is the name of dataroom that appears on the dataroom, “Description” is an optional field that can be used to give additional description for conveying more information. To read more about this action, visit Create Dataroom Action. Refer to the GIF below to get a visual understanding of above steps. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/13.gif) Here’s how our final Create Dataroom action looks like - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/14.png) ### 6 - Show Dataroom on Record using ‘Create Attachment’ Action The Create Attachment action can also be used to associate created dataroom to HubSpot records. To use this action, simply click on add button and search for ‘Create Attachment’ as shown below. After you add this action, you will have to fill 3 parameters. For attaching a dataoom, Library parameter should always be ‘CloudFiles’. Resource type will be ‘Dataroom’ and Resource ID will be ‘New Dataroom ID’ derived from the output of previous create Dataroom action. Refer to the GIF below to have a visual understanding of this steps - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/15.gif) Here’s how our final Create Attachment action for Dataroom looks like - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/16.png) ### 7 - Create File Request block using ‘Add to Dataroom’ The ‘Add to Dataroom’ action enables you to insert files, folders and file request blocks to your CloudFiles datarooms using a workflow. You can add this action as many times as needed to request the required files. To use this action, simply click on add button & search for ‘Add to Dataroom’ as shown below. Once you add this action, it will ask you to fill in certain parameters. “Shared Drive ID” & “Library” parameters will be same as above. For remaining parameters, refer below - - Dataroom ID - New Dataroom ID derived from the output of ‘Create Dataroom’ action - Type - File Request - Name - Name of documents requested - Add to destination - Yes - Path to destination folder - full and exact folder path of sub-folder created earlier - Description (Optional) - Describe the requested documents Refer to the GIF below to have a visual understanding of this steps - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/17.gif) Here’s how our final Add to Datatoom action looks like - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/18.png) ### 8 - Create shareable link for Dataroom using ‘Share Attachment’ action The Share Attachment action enables you to share attachments using HubSpot workflows. Sharing an attachment is exactly the same as manually creating a sharing link of a file / folder / dataroom from HubSpot record. To use this action, simply click on add button and search for ‘Share Attachment’ as shown below. This action has only one parameter that can be set to specify the Attachment to be shared. You can derive this from the return value of previous Create Attachment action - ‘New Attachment ID’. Refer to the GIF below have a visual understanding of this step - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/19.gif) ### 9 - Copy the sharing link to Contact property using ‘Copy Property Value’ Action In this step, we will copy the link created in the last step to a contact property. For this, first create a single-line text property in the HubSpot Contact Settings. We created a property called ‘Shared Files Portal Link’. To copy the shared link to the above property, we will use the Copy Property value action. For the ‘from’ parameter, we will choose the output ‘URL’ of the last action. For the ‘to’ parameter, we will use our newly created contact property. The GIF below shows the configuration for the Copy Property Value action. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/20.gif) That’s it. Save and activate the flow. Your documents upload process is set. In the next section, we will learn how to create the documents upload checklist. ## Create Checklist for required documents After setting up the documents upload process, we will create a checklist to keep a track of uploaded documents. This is how the checklist looks like - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/21.png) To set up the checklist, we'll create a multiple checkbox property in HubSpot contact settings, listing all required documents. As customers upload each document, the respective checkboxes will be marked automatically. When all checkboxes are marked, an email notification will alert the contact owner. Once the checklist is set-up, we will create individual workflows for each document to verify the upload and mark the respective checkbox. Here’s how our final workflow looks like. We will detail these elements in the sections below. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/22.png) ### 1 - Create Contact-based Workflow Create a new contact-based workflow from scratch and select the trigger to fire ‘when filter criteria is met’. Set the property as ‘CloudFiles: File received properties’ > ‘File Request Name’ as shown in the image below. Enter the name of the file requested. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/23.png) Refer to the GIF below to have a visual understanding of this step - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/24.gif) Once the trigger is set, in the next section, we will learn how to create the checklist containing a list of the required documents and how to set-up a workflow to append uploaded document to the corresponding checkbox. ### 2 - Set Property Value to append the document to the checklist We will create a checklist which will be visible in the contact property. To do so, we will create a multiple checkbox property in the HubSpot contact settings, listing all the documents to be requested from customers. In this tutorial, we've created a property named 'Upload Checklist' and listed three required documents as shown below - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/25.png) We will now create the action that will mark the appropriate checkbox in the checklist when documents are uploaded. For this, add HubSpot action ‘Set Property Value’. In the Target Object field, select ‘Contact’. Property to set will be the checklist property created above. Once selected, append the required value as shown in the GIF below - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/26.gif) This is how the final action looks like - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/27.png) ### 3- Notify if all documents uploaded Next, we will check if all documents have been uploaded. If they are, we will send an internal notification to the contact owner. To check whether everything is uploaded, we use a simple branch element. To send the notification, we use the ‘Send Internal Email’ action. You can also choose to send a slack notification. ![](https://media.help.cloudfiles.io/tut-document-approval-hs/28.png) Duplicate the above workflow for other required documents. Just make a simple tweak - append the respective document value to the 'Upload Checklist' property. ## Document Vetting and re-upload request After receiving the email confirming the completion of document uploads, you can access the uploaded documents within your HubSpot by navigating to CloudFiles Connected Folder. During document vetting, if a rejection occurs and you need a file re-upload, simply uncheck the document in the 'Upload Checklist' property. This action can trigger an e-mail to customers, requesting the re-upload of the specified document along with the dataroom link. You can chose to request document re-upload as many times as needed. Once satisfied, you can setup a workflow to trigger an email to the customer telling them the uploads are complete. To do so, you can have a single checkbox property on your contact called ‘Documents Upload Completed’ and trigger the workflow when this changes to Yes. That’s it! That’s how you can set-up a streamlined document approval process within HubSpot. ## Test the Workflow To test the document approval process, create a new contact or select an existing contact. Add all the properties related to the approval process created above. Set ‘Request Documents’ property to ‘Yes’ to trigger the workflow. Give it a minute to execute. Refresh the page. You will be able to see the dataroom link in the ‘Document Upload Link’ property and also the folder attachment in the CloudFiles Connected Folder widget in the middle. Click on the dataroom link and upload documents as requested. Once you have uploaded the documents, you will see the respective checkboxes get ticked. You can check the uploaded documents and mark the upload complete property accordingly to trigger external email to customer. These steps have been illustrated in the GIF below for a better understanding - ![](https://media.help.cloudfiles.io/tut-document-approval-hs/29.gif) --- # E-mail Attachment Tracking https://help.cloudfiles.io/hubspot/e-mail-attachment-tracking # E-mail Attachment Tracking Learn how to track e-mail attachments sent through mass HubSpot campaigns using the CloudFiles - HubSpot Integration, from creating personalized links to building analytics dashboards. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, we explore how e-mail attachments sent through mass HubSpot campaigns can be tracked and reported on using the CloudFiles - HubSpot Integration. We will use various features of both of these apps through the tutorial. ## What To Expect By the end of this tutorial, you can expect to - - Have an email template with a link to a file that can be sent to any contact. When the receiver clicks on the link and views the file, you will get personalized file view analytics - You would see the individual analytics on the HubSpot contact record - You will also have a HubSpot dashboard to see overall analytics The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in 5 to 10 minutes. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/01.gif) ## Tutorial Video Refer to the quick video if you would like to have a visual guide for this tutorial. Read on if you prefer textual content. [Watch video](https://www.youtube.com/watch?v=dWOQmREAo7k) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/02.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/03.gif) ## 2 - Create a CloudFiles Link CloudFiles links are secure publicly shareable links that can be used to share your collaterals in HubSpot mass e-mail campaigns. You can create the link using the CloudFiles Dashboard. Follow the steps below- - Now that you have the access to your external storage, go the CloudFiles library and locate the file for which you would like to create the link. - Click on “Create Link” button and name the link for your reference. - Click on “Copy Link” button to copy the link created for e-mail campaign. - While not mandatory for this use case, explore configuration settings during the link creation process if you want to customize any aspects. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/04.gif) ## 3 - Update E-mail Template & Add Personalization CloudFiles offers a cool feature to personalize the file link using a URL parameter. This, when combined with HubSpot's personalization tokens for marketing & sales email templates, offers a neat way to collect personal analytics on any CloudFiles link, without gating it. - Log in to your HubSpot account and navigate to the Marketing or Sales Hub. Choose the email template you want to update. Click on "Edit" to make changes. - Identify the hyperlink in your email template that you want to update with the CloudFiles link. - Replace the existing hyperlink with the copied CloudFiles link from the CloudFiles Dashboard. - At the end of the CloudFiles link, add the following personalization parameter and save the changes. This ensures personalized tracking for each recipient without gating it. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/05.png) Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/06.gif) ## 4 - Test your Email Template Send a test email to verify that the CloudFiles link is working correctly. Make sure that when sending the test email, you send it to a contact and not a naked email address. This way the personalization token would be populated correctly. The link in the email inbox should have your email appended to it at the end. The format is shown in the graphic below - ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/07.png) > **Important** — Always test your E-mail using a contact record, otherwise HubSpot would not populate the personalization tokens correctly. If your link shows up correctly, you can click on it and spend some time on your file so that analytics can be collected. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/08.gif) ## 5 - Check Analytics on Contact Click on the link that was sent in the email. Spend a few seconds on your asset for the analytics to build up. Scroll through so you can get richer analytics. Refresh the page so you collect multiple views. Once you feel eough analytics has been collected, go back to your HubSpot. When a file is viewed, CloudFiles checks for an associated contact in your HubSpot account. If found, analytics data is pushed to that contact's record. If CloudFiles doesn't find an existing contact in HubSpot, it automatically creates a new one. This ensures all analytics information is associated with the correct records. You can access this analytics from the contact record page of HubSpot by following the steps below - - In your HubSpot account, go to the contact record that you tested the email template for. - In the record timeline, enable CloudFiles activity as shown below. - Once done, you should see page view events in the timeline. - You can click on 'View Detailed Analytics' button to get the detailed analytics. > Please note, you need to enable the CloudFiles Timeline events first using the filter activity dropdown as shown below. Refer to the GIF below to get a visual understanding of this step. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/09.gif) You will get detailed drilled down analytics for each view. From the analytics dialog, you can get details such as view count, downloads, location, time spent, pagewise analytics etc... ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/10.png) ## 6 - Create Analytics Dashboard CloudFiles can also create File view custom object records in HubSpot for each view that happens in the file. There is various information available in this record including view date, time spent, scroll depth and more... You can create a variety of charts & reports using this data. ### Check HubSpot Custom Object Support In order to create document analytics dashboard, you need access to HubSpot Custom Objects. To see if you have access to this feature, look for a 'Custom Objects' option in the Contacts dropdown menu as shown below. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/11.png) > Please note, you need to have access to Custom Objects in HubSpot in order to create CloudFiles based engagement reports & dashboards. ### Enable CloudFiles Custom Object Feature You also need to enable the Custom Object feature in CloudFiles so we can automatically start creating these in your HubSpot account. This setting can be found on the CloudFiles app dashboard in Settings > Integrations > HubSpot > Enable Custom Object toggle. If you face issues enabling this feature, reach out to us through chat on the bottom right. Once the feature is enabled, you should see the 'CloudFiles Views' custom object created in the Contacts menu of HubSpot. You would also see some records pre-created for the views that you have already collected on files. You can view more information on any record by clicking on it. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/12.png) ### Create a File View Report To create your first report, go to your HubSpot and follow the steps below - - Go to Reporting > Reports > My Reports - Click Create Report and choose Single Object report - Choose CloudFiles Views object on the next screen - You will see the standard HubSpot report builder with data and visualization tab - Once you are done creating the report, name and save it. You can use these help articles from HubSpot to learn about the type of reports you can create with HubSpot. The GIF below shows the basic process in a nutshell. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/13.gif) ### Create a File View Dashboard You can now use the report(s) in dashboard and graphically see the data in a collated format. To create a file engagement dashboard, simply go to Reporting > Dashboard > New dashboards and start adding the report(s) you created in previous section. There are various visualization settings that HubSpot provides that can be used to plot insightful charts. Using these, we have plotted the following charts. ![](https://media.help.cloudfiles.io/tut-email-attachment-tracking-hs/14.png) ## Beyond This Tutorial In this tutorial, we talked about a very specific way of sharing a file using HubSpot. However there are loads of other file & folder sharing options and functionalities that the CloudFiles - HubSpot integration enables. To know more about the options for sharing files in E-mails and limitations of HubSpot documents, check out our blog on HubSpot Analytics Report for E-mail Attachment using CloudFiles. For marketers, file sharing can also happen through website banners and form walls, social media sites, ads, one-on-one sales sharing etc... CloudFiles can, in one way or the other, collect personalized analytics for each of these unique scenarios and create reports dashboards as illustrated above. Further, there are a lot of types of reports & charts that can be created. E.g. the graphic we posted above, the last chart on the right illustrates monthly scroll depth. E.g. 40% scroll depth implies that your clients only scroll through 4 out of ten pages of your collateral. The monthly plot can provide insights into this behavior over time as you update your collateral. To know more about what CloudFiles can do and how you can fit the app as per your unique use-case, book a call with us. --- # File Portals for Sales & Service teams https://help.cloudfiles.io/hubspot/file-portals-for-sales-and-service-teams # File Portals for Sales & Service teams Learn how to automate folder creation at a specific deal stage, establish an empty data room with a sharing link, upload files to internal folders, selectively share files with the data room, and analyse portal analytics using the HubSpot - CloudFiles integration. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, we explore how you can share file portals through HubSpot - CloudFiles integration. Learn how to automate folder creation at a specific deal stage, establish an empty data room with a sharing link, upload files to internal folders, selectively share files with the data room, and analyse portal analytics for valuable insights. ## What To Expect By the end of this tutorial, you can expect to - - Have a dedicated internal folder for a deal in Google Drive, which would be created automatically. - Have a dataroom link to share files with external stakeholders. - Be able to choose which files to share from internal folder with the external parties. - View Dataroom documents analytics on HubSpot contact and have a HubSpot dashboard to see overall analytics. The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in under 10 minutes. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/01.gif) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/02.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/03.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/04.gif) After connecting the desired storage, we will proceed to create deal based workflow which will be triggered when the deal reaches a certain stage. Here's how our final workflow looks like. We will detail these elements in the sections below. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/05.png) ## 2 - Create Deal Workflow Create a new deal based workflow from scratch and select the trigger to fire when the deal reaches a certain stage as shown in the GIF below. You can chose any stage as the deal stage. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/06.gif) ## 3 - Create Internal Folder using 'Create Folder' Action Create Folder action can be used to create folders in any location on any cloud storage platform from HubSpot flow action. We will use this action to first create the folder as internal repository to store the files. To use the "Create Folder" action, simply click on add button and search for 'Create Folder' as shown below. Once you add this action, it will ask you to fill in certain parameters. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/07.gif) This action requires a few parameters. The Library parameter is the desired Cloud storage where you wish to create the folder. Select the desired storage from the drop down field. The Folder name is the name you wish to give your created Folder. We simply use the Deal's name but you can also create a complex text formula variable as well. The GIF below shows how to populate the Library & Folder name parameter. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/08.gif) We also need to enter values for Shared Drive ID & Path to Destination. These are - - Shared Drive ID - This is important for google drive & sharepoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. - Path to Destination - This specifies the destination folder in which this new folder will be created. These parameters can be easily copied from CloudFiles app library. Follow these steps - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to your CloudFiles storage. - Under the libraries tab, navigate to folder where you would like to store your files or simply create new folder. - Copy the parameter from the meta data on the right side of the screen. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/09.gif) For a detailed description of the Create Folder action, refer to the Create Folder detailed guide. Here's how our final Create Folder action looks like - ![](https://media.help.cloudfiles.io/tut-file-portals-hs/10.png) ## 4 - Show Folder on Record using 'Create Attachment' Action The Create Attachment action is used to associate created folder to HubSpot records. Attaching (or associating) our newly created folder is important since this will enable us to see and operate on the folder contents right from the HubSpot record. To use this action, simply click on add button and search for 'Create Attachment' as shown below. Once you add this action, it will ask you to fill in certain parameters. "Shared Drive ID" and "Library" parameters will be same as above. The "Path to folder" will be the exact and full path of the newly created folder. You can simply copy from the meta data info in the CloudFiles Library using the same steps as specified in the shared drive ID section above. Here's how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-file-portals-hs/11.png) ## 5 - Create Dataroom using 'Create Dataroom' Action A Dataroom is a file portal, where you can link multiple files & folders, organize them in groups and even request files from your customers. We will use "Create Dataroom" action to create empty empty datarooms where selected files can be shared with customers from the internal repository. To use this action, simply click on add button and search for 'Create Dataroom' as shown below. Once you add this action, it will ask you to fill in certain parameters. "Name" is the name of dataroom that appears on the dataroom, "Description" is an optional field that can be used to give additional description for conveying more information. To read more about this action, visit Create Dataroom Action. Refer to the GIF below to get a visual understanding of above steps. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/12.gif) Here's how our final Create Dataroom action looks like - ![](https://media.help.cloudfiles.io/tut-file-portals-hs/13.png) ## 6 - Show Dataroom on Record using 'Create Attachment' Action The Create Attachment action can also be used to associate created dataroom to HubSpot records. To use this action, simply click on add button and search for 'Create Attachment' as shown below. After you add this action, you will have to fill 3 parameters. For attaching a dataoom, Library parameter should always be 'CloudFiles'. Resource type will be 'Dataroom' and Resource ID will be 'New Dataroom ID' derived from the output of previous create Dataroom action. Refer to the GIF below to have a visual understanding of this steps - ![](https://media.help.cloudfiles.io/tut-file-portals-hs/14.gif) Here's how our final Create Attachment action for Dataroom looks like - ![](https://media.help.cloudfiles.io/tut-file-portals-hs/15.png) Once the Dataroom is created and associated to the record, we will create sharing link for the Dataroom using 'Share Attachment' action. ## 7 - Create shareable link for Dataroom using 'Share Attachment' action The Share Attachment action enables you to share attachments using HubSpot workflows. Sharing an attachment is exactly the same as manually creating a sharing link of a file / folder / dataroom from HubSpot record. To use this action, simply click on add button and search for 'Share Attachment' as shown below. This action has only one parameter that can be set to specify the Attachment to be shared. You can derive this from the return value of previous Create Attachment action - 'New Attachment ID'. Refer to the GIF below have a visual understanding of this step - ![](https://media.help.cloudfiles.io/tut-file-portals-hs/16.gif) This is what the final Share Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-file-portals-hs/17.png) ## 8- Set the sharing link to deal property using 'Edit Record' Action In this step, we will set the link created in the last step to a deal property. For this, first create a single-line text property in the HubSpot Deal Settings. We created a property called 'Shared Files Portal Link'. To set the shared link to the above property, we will use the Edit Record action. For the 'Property to set' parameter, we will choose 'Shared Files Portal Link' and under 'Shared Files Portal Link' parameter we will set it to the output 'URL' of the last action. The GIF below shows the configuration for the Edit Record action. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/18.gif) That's it. Save and activate the flow. In the next section, we will test the workflow and check the Analytics. ## Test the Workflow To test the workflow, create a new deal and set the stage to the one used in the trigger. Give it a minute to execute. Refresh the page. You will be able to see the dataroom link in the deal property and also the folder attachment in the CloudFiles widget in the right side. Start by adding some files in the folder. Once added, you can choose selective files to be added to the Dataroom. If you open the dataroom link, you will see these selective files. These steps have been illustrated in the GIF below for a better understanding - ![](https://media.help.cloudfiles.io/tut-file-portals-hs/19.gif) ## Check the Analytics Click on the Dataroom link and browse the files. Scroll through so you can get richer analytics. Refresh the page so you can collect multiple views. Once you feel enough analytics has been collected, go back to your HubSpot. You can check the analytics in multiple ways - ### Check Analytics on the Dataroom in CloudFiles Widget Go to CloudFiles Widget and locate the Dataroom. In the Action drop down menu, select 'Analytics' to get a detailed analytics view. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/20.gif) ### Check Analytics on the Activities Timeline You can access this analytics from the contact record page of HubSpot as well. Make sure you enable CloudFiles checkbox in the Filter Activities as shown in the GIF below. With this, you will see File View events on the deal and can click 'View detailed analytics' button. > Please note, you need to enable the CloudFiles Timeline events first using the filter activity dropdown as shown below. Refer to the GIF below to get a visual understanding of this step - ![](https://media.help.cloudfiles.io/tut-file-portals-hs/21.png) CloudFiles can also create File view custom object records in HubSpot for each view that happens in the file. There is various information available in this record including view date, time spent, scroll depth and more. You can create a variety of charts & reports using this data. ![](https://media.help.cloudfiles.io/tut-file-portals-hs/22.png) You can read more about this in the 'Create Analytics Dashboard section' of E-mail Attachment Tracking Dashboard For Marketers. --- # File Upload Portal for clients https://help.cloudfiles.io/hubspot/file-upload-portal-for-clients # File Upload Portal for clients Explore how to collect documents from customers or team members and allow them to access the uploaded files via a self-updating dataroom through the HubSpot-CloudFiles integration. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, you will get to explore how to collect documents from customers or team members and allow them to access the uploaded files called a self-updating dataroom through the HubSpot-CloudFiles integration. ## What to Expect : By the end of this tutorial, you can expect to - - Set up a self-updating dataroom. - Configure the document collection from customers or team members. - Provide access to the uploaded files for customers or team members. - Manage and maintain the document access portal. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/01.gif) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/02.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/03.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/04.gif) After connecting the desired storage, we will proceed to create contact-based workflow which will be triggered when a new contact is registered. Here’s how our final workflow looks like. We will detail these elements in the sections below. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/05.png) ## 2 - Create Contact-based Workflow Create a new contact-based workflow from scratch and select the trigger to fire when a new contact is created as shown in the GIF below. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/06.gif) ## 3 - Automate Sensitive Document Storage with ‘Create Folder’ Action The Create Folder action allows you to create folders in any location on a cloud storage platform directly from HubSpot flow actions. We will use this action to create a folder for storing sensitive documents collected from the dataroom. To use the “Create Folder” action, click the add button and search for ‘Create Folder.’ After adding the action, you will need to fill in several parameters. The Library parameter specifies the cloud storage where you want to create the folder; select the desired storage from the dropdown menu. The Folder Name is what you want to call the new folder. You also need to enter values for Shared Drive ID and Path to Destination: - Shared Drive ID: Required for Google Drive and SharePoint users, as these platforms support multiple drives for document storage. - Path to Destination: Indicates where in the cloud storage the new folder will be created. These values can be copied from the CloudFiles app library by following these steps: - Locate the CloudFiles widget in any HubSpot record and click on it to access your CloudFiles storage. - Under the Libraries tab, navigate to the desired location for your files or create a new folder. - Copy the parameters from the metadata on the right side of the screen. Refer to the GIF below for a quick overview of these steps. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/07.gif) For a detailed description of the Create Folder action, refer to the Create Folder detailed guide. Here’s how our final Create Folder action looks like - ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/08.png) ## 3 - Create Dataroom using ‘Create Dataroom’ action A Dataroom is a file portal, where you can request files from your customers. We will use the “Create Dataroom” action to create a file request portal where customers can upload their documents. To use this action, click the add button and search for "Create Dataroom." After adding the action, you'll need to fill in certain parameters. The "Name" field specifies the name displayed on the dataroom, while the "Description" field is optional and can provide additional context. For more information about this action, visit “Create Dataroom Action.” The GIF below provides a visual representation of these steps. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/09.gif) Here’s how your final Create Dataroom action will appear: ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/10.png) ## 5 - Show Dataroom on Record using ‘Create Attachment’ Action The Create Attachment action allows you to associate a created dataroom with HubSpot records. To use this action, click the add button and search for "Create Attachment." Once added, you will need to fill in three parameters: set the Library parameter to "CloudFiles," choose "Dataroom" for Resource Type, and enter the Resource ID as the "New Dataroom ID" obtained from the previous Create Dataroom action. Refer to the GIF below for a visual guide to these steps. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/11.gif) Here’s how our final Create Attachment action for Dataroom looks like - ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/12.png) Once the Dataroom is created and associated with the record, we will create file request blocks to request documents within the dataroom. ## 6 - Create File Request Block Using ‘Add to Dataroom’ The ‘Add to Dataroom’ action allows you to insert files, folders, and file request blocks into your CloudFiles datarooms via a workflow. In this tutorial, we will use this action to create file request blocks for the KYC documents and passport folder. You can add this action multiple times to request any additional files needed. To use this action, click the add button and search for ‘Add to Dataroom.’ After adding the action, you will need to fill in several parameters: - Shared Drive ID: Same as above. - Library: Same as above. - Dataroom ID: New Dataroom ID from the output of the ‘Create Dataroom’ action. - Type: File Request. - Name: Specify the name of the documents being requested. - Add to Destination: Yes. - Path to Destination Folder: Enter the full and exact folder path of the sub-folder created earlier. - Description (Optional): Provide a description of the requested documents. The GIF below shows how to configure the Add to dataroom action: ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/13.gif) Here’s how our final Add to Datatoom action looks like - ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/14.png) ## 7 - Add Content Using ‘Add to Dataroom’ Using the Add to Dataroom action, add the folder that we created for collecting the uploaded documents in the beginning. To use the action, click the add button and search for ‘Add to Dataroom.’ After adding the action, you will need to fill in the parameters like the above step: - Shared Drive ID: Same as above. - Library: Same as above. - Dataroom ID: New Dataroom ID from the output of the ‘Create Dataroom’ action. - Type: Content. - Add to Destination: Yes. - Path to Destination Folder: Enter the full and exact folder path of the sub-folder created earlier. Here’s how our final Add to Datatoom action looks like - ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/15.png) ## 8 - Create a shareable link for Dataroom using ‘Share Attachment’ action The Share Attachment action allows you to share attachments through HubSpot workflows. This process is similar to manually creating a sharing link for a file, folder, or dataroom from a HubSpot record. To use this action, click the add button and search for ‘Share Attachment.’ This action requires only one parameter: the Attachment to be shared, which can be obtained from the return value of the previous Create Attachment action, labeled ‘New Attachment ID.’ Here’s how the final Share Attachment action appears: ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/16.png) ## 9 - Set the sharing link to contact property using the ‘Edit Record’ Action In this step, we will set the link created in the previous step into a contact property. First, create a single-line text property in the HubSpot Contact Settings; we’ll call it ‘Self-Updating Dataroom Link.’ We will use the Edit Record action to transfer the shared link to this property. For the 'Property to set' parameter, choose the property you created and then set the custom property to the URL output derived from the Share Attachment. The GIF below illustrates how to configure the Edit Record action. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/17.gif) That’s it. Save and activate the flow. In the next section, we will test the workflow. ## 10 - Test the Workflow To test the workflow, create a new contact and wait a minute for it to execute. Refresh the page, and you should see the dataroom link in the contact property, along with the dataroom attachment in the CloudFiles widget on the right side. Click on the dataroom link to upload the requested document(s). After uploading, you can verify the uploaded documents in the corresponding folder within the dataroom. The GIF below provides a visual guide for these steps. ![](https://media.help.cloudfiles.io/tut-file-upload-portal-hs/18.gif) --- # Mirror Deal Folder to Contacts Automatically https://help.cloudfiles.io/hubspot/mirror-deal-folder-to-contacts-automatically # Mirror Deal Folder to Contacts Automatically Learn how to automatically create a parent folder for a HubSpot deal and mirror it to the deal's associated contacts using CloudFiles flow actions. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, we'll guide you through creating automated folders when a deal is created and ensuring that the same parent deal folder is automatically associated to the associated contacts of the deal using the CloudFiles-HubSpot integration. We'll use CloudFiles flow actions to set up these automated folders. ## What to Expect By the end of this tutorial, you can expect to: - Have an Automated Parent Folder for a HubSpot deal record when it is created. - You will be able to attach this parent deal folder to its associated contacts. - You will also be able to access these folders within your HubSpot record within the CloudFiles Connected folder widget. The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in under 10 minutes. ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/01.gif) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/02.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/03.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/04.gif) After connecting the desired storage, we’ll proceed to create a deal-based workflow that is triggered when a new deal is created. Next, we’ll set up a contact-based workflow to link the deal folder to its associated contacts. Below is an overview of the workflows, which we’ll break down in the sections that follow. ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/05.png) ## Section 1: Create a Folder for the Deal and Link It In this section, we’ll make a workflow that automatically creates a folder when a new deal is added and attaches it to the deal record in your CRM. ### 1 - Create a Deal-Based Workflow Create a new deal-based workflow from scratch and select the trigger to fire when a new deal is created, as shown in the picture below. ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/06.png) ### 2 - Create Parent Folder using ‘Create Folder’ Action Create Folder action can be used to create folders in any location on any cloud storage platform from HubSpot flow action. We will use this action to first create the Parent folder. To use the “Create Folder” action, simply click on add button and search for ‘Create Folder’ as shown below. Once you add this action, it will ask you to fill in certain parameters. ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/07.gif) This action requires a few parameters. The Library parameter refers to the cloud storage service (like Google Drive, SharePoint, etc.) where you want to create the folder. Simply choose your preferred storage option from the dropdown menu. The Folder Name is the name you’d like to assign to the newly created folder. In most cases, we use the Deal’s name for simplicity, but you can also use a custom text formula or variable to generate more complex names. You’ll also need to provide values for the Shared Drive ID and Path to Destination. These are: Shared Drive ID – This applies only to Google Drive and SharePoint users. These platforms support multiple “drives” where documents can be stored. You’ll need to specify which one to use. Path to Destination – This defines the exact location (folder path) where the new folder should be created inside your selected storage. You can easily copy these parameters from the CloudFiles app. Just follow these steps: - Locate the CloudFiles widget on any HubSpot record and click on CloudFiles. You’ll be redirected to your connected CloudFiles storage. - Under the Libraries tab, navigate to the folder where you want to save your files, or create a new one. - On the right side of the screen, you’ll see a metadata section. Copy the required parameters from there. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/08.gif) For a detailed description of the Create Folder action, refer to the Create Folder detailed guide. Here’s how our final Create Folder action looks like - ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/09.png) ### 3 - Show Parent Folder on Deal Record using ‘Create Attachment’ Action The Create Attachment action is used to link the newly created folder to a HubSpot record. Attaching (or associating) the deal folder is essential because it allows you to view and manage the folder’s contents directly from within the HubSpot record itself. To use this action, click on the Add button and search for ‘Create Attachment’ as shown below. After adding the action, you’ll be prompted to enter a few parameters. The Shared Drive ID and Library fields will remain the same as mentioned earlier. The Path to Folder is the full and exact folder path of the parent folder you created. You can easily copy this path from the metadata section in the CloudFiles Library, just follow the same steps described earlier for getting the Shared Drive ID. Here’s how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/10.png) ## Section 2: Attach the Same Folder to the Deal’s Contacts In this section, we’ll use that same folder and connect it to the contacts associated with the deal, so everyone has access to the same folder. ### 1 - Create a Contact-Based Workflow To set up the workflow, start by creating a new contact-based workflow from scratch in HubSpot. For the trigger, select the option to fire when a new deal is created and whenever a contact is associated with any deal. To ensure the workflow only runs when the deal has a folder attached, add a filter condition using the CloudFiles property called "Number of Resources Attached" and set it to equal 1. This filter ensures that the first workflow, which creates the folder for the deal, has already run, so this workflow only proceeds when a resource (folder) is linked to the associated deal. To learn more about the CloudFiles properties that can be used in workflows and triggers, refer to All CloudFiles Properties. ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/11.png) ### 2 - Show Deal Folder on Contact Record using ‘Create Attachment’ Action We will follow the same steps that we had followed previously. The Create Attachment action is used to associate created folder to HubSpot records. Attaching (or associating) our newly created deal folder is important since this will enable us to see and operate on the folder contents right from the HubSpot record. The parameters such as Library, Shared Drive ID, and Path to file or folder will remain the same as those used in the Create Attachment action within the deal-based workflow. However, when you try to insert the "Deal name" token while configuring the folder name at the end of the path to file or folder parameter, you will notice that the token does not appear if you select Enrolled contact in the View "properties or action outputs from:" section. To make the "Deal name" token available: - Click Edit available records. - In the Edit available records dialog, click Add records. - Provide a name for the data source (e.g., Deal). - Set the Record type to Deal. - Define a condition to filter the deals: - Condition: If associated to the enrolled contact - Association label: all associated deals - Condition to filter deals: most recently created This setup ensures that the path to file or folder parameter can include the Deal name from the most recently created deal associated with the enrolled contact. Here’s how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/12.png) ## Test the Automated Folders in Action Now that everything is set up, it’s time to test the workflow. Start by creating a new Deal in HubSpot and associating one or more contacts to it. The workflow might take a few seconds to run, so give it a moment and refresh the page if needed. Next, go to the CloudFiles Connected Folder widget tab in the middle section of the Deal record. You should now see the newly created Deal folder right there in the Deal record, and the same folder will also appear under the associated contact’s records. This is shown in the GIF below - ![](https://media.help.cloudfiles.io/tut-mirror-deal-folder-hs/13.gif) > **Enabling Re-enrollment** — If someone creates a new deal for an existing contact, for example, if you are associating another deal with a contact that already exists in your CRM and you want a folder to be automatically created and linked to that contact record again, make sure the re-enrollment option is enabled in your workflow. This allows the workflow to run again for the same contact whenever a new deal is associated.. --- # Move Files from HubSpot Forms to External Storage https://help.cloudfiles.io/hubspot/move-files-from-hubspot-forms-to-external-storage # Move Files from HubSpot Forms to External Storage Learn how to automatically create contact-based folders in your cloud storage and move files submitted through HubSpot forms into them using the HubSpot - CloudFiles integration. > Kind: Tutorial · Updated: Jun 4, 2026 ## What to Expect By the end of this tutorial, you’ll be able to: - Automatically create a structured folder system in your connected cloud storage (Google Drive, SharePoint, etc.) for each contact. - Associate the created folder with the HubSpot record to allow easy access and management. - Move uploaded files from HubSpot forms to the appropriate cloud storage folders while renaming them. The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in under 5 minutes. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/01.gif) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/02.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/03.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/04.gif) After connecting the desired storage, we will proceed to create company-based workflow which will be triggered when a new company is registered. Here’s how our final workflow looks like. We will detail these elements in the sections below. ## 2 - Create a HubSpot Form I have created a patient registration form in HubSpot to collect essential details such as Identification Proof, Insurance Card Information, and Medical History Information. Along with these, I have included fields for the patient’s first and last name, date of birth, contact details, residential address, and other relevant information. This structured form ensures that all necessary patient data is systematically gathered, making it easier to store, manage, and process within HubSpot. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/05.png) ## 3 - Create Contact-based Workflow Create a new contact-based workflow from scratch and select the trigger to fire when any contact has filled out the Patient Registration form. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/06.gif) ## 4 - Create Parent Folder using ‘Create Folder’ Action Create Folder action can be used to create folders in any location on any cloud storage platform from HubSpot flow action. We will use this action to first create the Parent folder in which sub-folders will be created automatically. To use the “Create Folder” action, simply click on add button and search for ‘Create Folder’ as shown below. Once you add this action, it will ask you to fill in certain parameters. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/07.gif) This action requires a few parameters. The Library parameter is the desired Cloud storage where you wish to create the folder. Select the desired storage from the drop down field. The Folder name is the name you wish to give your created Folder. We have simply used the Contacts’s first and last names followed by Form Uploads but you can also create a complex text formula variable as well. The GIF below shows how to populate the Library & Folder name parameter. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/08.gif) We also need to enter values for Shared Drive ID & Path to Destination. These are - - Shared Drive ID - This is important for google drive & sharepoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. - Path to Destination - This specifies the destination folder in which this new folder will be created. These parameters can be easily copied from CloudFiles app library. Follow these steps - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to your CloudFiles storage. - Under the libraries tab, navigate to folder where you would like to store your files or simply create new folder. - Copy the parameter from the meta data on the right side of the screen. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/09.gif) For a detailed description of the Create Folder action, refer to the Create Folder detailed guide. Here’s how our final Create Folder action looks like - ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/10.png) ## 5- Create Sub-Folders using ‘Create Folder‘ Action You can create sub-folders using the same ‘Create Folder’ action with just a couple of simple adjustments. - Update the Folder Name: - Set this to the name of the sub-folder you want to create. - For example, we are creating ‘Identification Proof’, ‘Insurance Card’, and ‘Medical Records’ subfolders inside the parent folder. - Modify the Path to Destination: - Ensure this is set to the exact, full path of the parent folder created in the previous step. - This ensures that the new sub-folder gets created inside the correct contact’s folder. Here’s how your second Create Folder action should look like. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/11.png) You can choose to have as many sub folders as you want. Simply duplicate the Create Folder action. You can also create sub-sub-folders and even deeper hierarchies using this method. ## 5 - Show Parent Folder on Company Record using ‘Create Attachment’ Action The ‘Create Attachment’ action is used to associate the newly created folder with HubSpot records. This step is essential, as it allows you to access and manage the folder's contents directly from the HubSpot record. - Add the Action: - Click on the Add button in your workflow. - Search for ‘Create Attachment’ and select it, as shown below. - Configure the Required Parameters: - Shared Drive ID & Library: Use the same values as in the previous steps. - Path to Folder: Enter the exact, full path of the newly created parent folder. - You can easily copy this path from the metadata info in the CloudFiles Library, following the same steps used to retrieve the Shared Drive ID. This ensures that your folder is correctly linked to the HubSpot record, enabling seamless access and management. Here’s how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/12.png) ## 6 - Move HubSpot Files The Move HubSpot Files Action is used to move files stored in HubSpot file manager (such as the ones uploaded through a HubSpot form) to an external storage system. This action is useful in scenarios where a HubSpot form is being used to collect files. To use this action, simply click on add button and search for ‘Move HubSpot Files’ as shown below. Once you add this action, it will ask you to fill in certain parameters. Files, Library, DriveID, Path to Destination, and File name. Files: This parameter helps specify the file(s) that need to be copied. The value should come from a HubSpot property which stores a publicly accessible HubSpot URL of the file. In this case since I am collecting the Identification Proof , Insurance Card and Medical Records of the patient, I will adding the particular contact property for each of them. Shared Drive ID & Library: Use the same values as in the previous steps. Path to Destination: Mention the path as to where the files uploaded through the forms will be saved in cloud storage. In this I have added the path to the parent folder followed by the sub-folder's name so that Medical Records uploaded via the form goes to the Medical Records subfolder created within the parent folder. File Name: This is the name you wish to give your copied file. In this I want to rename the files uploaded to the contact's first name followed by the Medical Records and similarly for the other documents. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/13.gif) Here’s how our Move HubSpot Files action looks like - ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/14.png) ## 7 - Test the Workflow To test the workflow, create a new contact or use an existing contact’s email address to fill out the form. Upload the three documents: ID proof, insurance card, and medical history records. Wait for a minute for the workflow to execute. Refresh the page and you should see a folder named after the contact’s first and last name. Inside the parent folder, you will see the subfolders created and they will contain the uploaded files, all accessible from the CloudFiles Connected Folder widget in the middle. The GIF below provides a visual guide for these steps. ![](https://media.help.cloudfiles.io/tut-move-files-from-forms-hs/15.gif) --- # Selective File collection portal https://help.cloudfiles.io/hubspot/selective-file-collection-portal # Selective File collection portal Tutorial on automating a conditional file collection portal (Dataroom) within external storage, linked to HubSpot records via the CloudFiles-HubSpot integration, using workflow actions to dynamically generate folders, subfolders, and file request blocks based on user selections. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, we will guide you in automating a conditional file collection portal within external storage, directly linked to HubSpot records using the CloudFiles-HubSpot integration. You'll learn how to dynamically generate parent folders, subfolders, and file request blocks based on user selections using CloudFiles workflow actions. ## What to Expect By the end of this tutorial, you will be able to: - Set up an automated file collection portal (Dataroom). - Create conditional file request blocks that adjust dynamically based on the user’s selections in a multiple-checkbox property. - Automatically generate a Parent Folder linked to a HubSpot record (e.g., a Deal). - Configure a customized folder hierarchy, ensuring the right number of subfolders are created based on selected document types. The GIF below demonstrates the final output. If you’re familiar with these concepts, you can complete this tutorial in under 10 minutes. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/01.gif) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/02.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/03.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your Google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/04.gif) After connecting the desired storage, we will proceed to create deal-based workflow which will be triggered when a new deal is created and a multiple checkbox property called "Request Docs" is known. Here’s how our final workflow looks like. We will detail these elements in the sections below. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/05.png) ## 2 - Create a Multiple Checkbox Property In the Deals object, create a multiple-checkbox property named "Request Docs". Add the following options: ID, Passport, KYC Docs, and Tax Statements. You can also arrange the options in your preferred order for better visibility. Refer to the GIF below for a step-by-step walkthrough. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/06.gif) ## 3 - Create Deal-based Workflow Create a new deal-based workflow from scratch and select the trigger to fire when a new deal is created and the "Request Docs" property is known as shown in the GIF below. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/07.gif) ## 4 - Create Parent Folder using ‘Create Folder’ Action Create Folder action can be used to create folders in any location on any cloud storage platform from HubSpot flow action. We will use this action to first create the Parent folder in which sub-folders will be created automatically. To use the “Create Folder” action, simply click on add button and search for ‘Create Folder’ as shown below. Once you add this action, it will ask you to fill in certain parameters. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/08.gif) This action requires a few parameters. The Library parameter is the desired Cloud storage where you wish to create the folder. Select the desired storage from the drop down field. The Folder name is the name you wish to give your created Folder. We have simply used the Deal’s name but you can also create a complex text formula variable as well. We also need to enter values for Shared Drive ID & Path to Destination. These are - - Shared Drive ID - This is important for google drive & sharepoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. - Path to Destination - This specifies the destination folder in which this new folder will be created. These parameters can be easily copied from CloudFiles app library. Follow these steps - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to your CloudFiles storage. - Under the libraries tab, navigate to folder where you would like to store your files or simply create new folder. - Copy the parameter from the meta data on the right side of the screen. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/09.gif) For a detailed description of the Create Folder action, refer to the Create Folder detailed guide. Here’s how our final Create Folder action looks like - ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/10.png) ## 5 - Show Parent Folder on Deal Record using ‘Create Attachment’ Action The Create Attachment action is used to associate created folder to HubSpot records. Attaching (or associating) our created deal folder is important since this will enable us to see and operate on the folder contents right from the HubSpot record. To use this action, simply click on add button and search for ‘Create Attachment’ as shown below. Once you add this action, it will ask you to fill in certain parameters. “Shared Drive ID” and “Library” parameters will be same as above. The “Path to folder” will be the exact and full path of the newly created parent folder. You can simply copy from the meta data info in the CloudFiles Library using the same steps as specified in the shared drive ID section above. Here’s how our final Create Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/11.png) ## 6 - Create Dataroom using ‘Create Dataroom’ action A Dataroom is a file portal, where you can request files from your customers. We will use “Create Dataroom” action to create a file request portal where customers can upload their sensitive documents. To use this action, simply click on add button and search for ‘Create Dataroom’ as shown below. Once you add this action, it will ask you to fill in certain parameters. “Name” is the name of dataroom that appears on the dataroom, “Description” is an optional field that can be used to give additional description for conveying more information. To read more about this action, visit “Create Dataroom Action”. Refer to the GIF below to get a visual understanding of above steps. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/12.gif) This is how your final Create Dataroom action looks like - ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/13.png) ## 7 - Show Dataroom on Record using ‘Create Attachment’ Action The Create Attachment action can also be used to associate created dataroom to HubSpot records. To use this action, simply click on add button and search for ‘Create Attachment’ as shown below. After you add this action, you will have to fill 3 parameters. For attaching a dataoom, Library parameter should always be ‘CloudFiles’. Resource type will be ‘Dataroom’ and Resource ID will be ‘New Dataroom ID’ derived from the output of previous create Dataroom action. Here’s how our final Create Attachment action for Dataroom looks like - ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/14.png) Once the Dataroom is created and associated to the record, we will create file request block to request sensitive documents within the dataroom. ## 8 - Create shareable link for Dataroom using ‘Share Attachment’ action The Share Attachment action enables you to share attachments using HubSpot workflows. Sharing an attachment is exactly the same as manually creating a sharing link of a file/folder/dataroom from the HubSpot record. To use this action, simply click on add button and search for ‘Share Attachment’ as shown below. This action has only one parameter that can be set to specify the Attachment to be shared. You can derive this from the return value of previous Create Attachment action - ‘New Attachment ID’. This is what the final Share Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/15.png) ## 9 - Set the sharing link to deal property using ‘Edit Record’ Action In this step, we will set the link created in the last step to a deal property. For this, first create a single-line text property in the HubSpot Deal Settings. We created a property called ‘Dataroom Link’. To set the shared link to the above property, we will use the Edit Record action. For the ‘Property to set’ parameter, we will choose 'Dataroom Link' and under 'Dataroom Link' parameter we will set it to the output ‘URL’ of the last action. This is what the final Edit Record action looks like- ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/16.png) ## 10 - Add Conditional Checks for Workflow Execution The workflow now moves to evaluate branches by checking whether the Request Docs multi-select property contains "ID." Here is a screenshot of the first branch- ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/17.png) ### If "ID" is present: ### i - Create Sub-Folders using ‘Create Folder‘ Action To create a sub-folder, we can simply use the same ‘Create Folder’ action that we used above with a couple of simple tweaks. - Change the ‘Folder Name’ to reflect the sub-folder you want to create. We will create a subfolder names 'ID' within the Deal folder. - Change the ‘Path to Destination’ to exact and full path to Parent folder name that we created in the previous action. This way, this new folder will get created inside the account’s folder we created previously. Here’s how your Create Folder action should look like. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/18.png) You can choose to have as many sub folders as you want. Simply duplicate the Create Folder action. You can also create sub-sub-folders and even deeper hierarchies using this method. ### ii - Create a File Request block using ‘Add to Dataroom’ The ‘Add to Dataroom’ action enables you to insert files, folders and file request blocks to your CloudFiles datarooms using a workflow. In this tutorial, We will use this action to create file request blocks for ID. You can add this action as many times as needed to request the required files. To use this action, simply click on add button and search for ‘Add to Dataroom’ as shown below. Once you add this action, it will ask you to fill in certain parameters. “Shared Drive ID” and “Library” parameters will be same as above. For remaining parameters, refer below - - Dataroom ID - New Dataroom ID derived from the output of the ‘Create Dataroom’ action - Type - File Request - Name - Name of documents requested as in this case I have added 'ID' - Add to destination - Yes - Path to destination folder - full and exact folder path of ID sub-folder created earlier - Description (Optional) - Describe the requested documents Here’s how Add to Datatoom action looks like - ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/19.png) ### iii - Go to Action: Even if 'ID' is selected from the multi-checkbox property, the workflow should still check whether 'Passport' is selected as well. This is why the 'Go to action' step is used—to ensure the workflow continues evaluating all selected options rather than stopping at the first match. Now If "ID" is not present, the workflow directly goes to the Passport check branch. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/20.png) ### 2 - If "Passport" is present ### i - Create Sub-Folders using ‘Create Folder‘ Action Just like we created a subfolder for ID, we will now create a subfolder for Passport using the ‘Create Folder’ action. Follow the same steps as before, ensuring that: - Folder Name is set as 'Passport.' - Path to Destination is the full and exact path of the parent folder created in the previous step. Here’s how your Create Folder action should look like. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/21.png) This ensures that the Passport subfolder is correctly placed within the designated parent folder. ### ii - Create a File Request block using ‘Add to Dataroom’ Just like we did for ID, we will now create a file request block for Passport using the ‘Add to Dataroom’ action. Follow the same steps as before, ensuring that: - Dataroom ID is the same as derived from the ‘Create Dataroom’ action. - Type is set to ‘File Request.’ - Name is set as ‘Passport.’ - Add to destination is set to ‘Yes.’ - Path to destination folder is the full and exact path of the Passport subfolder created earlier. Here’s how Add to Datatoom action looks like - ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/22.png) This ensures that the requested Passport document is correctly placed in the designated folder. Refer to the GIF below for a visual walkthrough of this step. ### iii - Go to Action Even if 'Passport' is selected, the workflow should still check whether 'KYC Docs' is selected as well. This is why the 'Go to action' step is used—to ensure the workflow continues evaluating all selected options rather than stopping at the first match. Now, if 'Passport' is not present, the workflow directly moves to the KYC Docs check branch. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/23.png) ### 3 - If "KYC Docs" is present ### i - Create Sub-Folders using ‘Create Folder‘ Action Just like we created a subfolder for Passport, we will now create a subfolder for KYC Docs using the ‘Create Folder’ action. Follow the same steps as before, ensuring that: - Folder Name is set as 'KYC Docs.' - Path to Destination is the full and exact path of the parent folder created in the previous step. Here’s how your Create Folder action should look like. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/24.png) This ensures that the KYC Docs subfolder is correctly placed within the designated parent folder. ### ii - Create a File Request block using ‘Add to Dataroom’ Just like we did for Passport, we will now create a file request block for KYC Docs using the ‘Add to Dataroom’ action. Follow the same steps as before, ensuring that: - Dataroom ID is the same as derived from the ‘Create Dataroom’ action. - Type is set to ‘File Request.’ - Name is set as ‘KYC Docs.’ - Add to destination is set to ‘Yes.’ - Path to destination folder is the full and exact path of the KYC Docs subfolder created earlier. Here’s how Add to Datatoom action looks like - ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/25.png) This ensures that the requested KYC Docs document is correctly placed in the designated folder. Refer to the GIF below for a visual walkthrough of this step. ### iii - Go to Action Even if 'KYC Docs' is selected, the workflow should still check whether 'Tax Statements' is selected as well. This is why the 'Go to action' step is used—to ensure the workflow continues evaluating all selected options rather than stopping at the first match. Now, if 'KYC Docs' is not present, the workflow directly moves to the Tax Statements check branch. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/26.png) ### 4 - If "Tax Statements" is present ### i - Create Sub-Folders using ‘Create Folder‘ Action Just like we created a subfolder for KYC Docs, we will now create a subfolder for Tax Statements using the ‘Create Folder’ action. Follow the same steps as before, ensuring that: - Folder Name is set as 'Tax Statements.' - Path to Destination is the full and exact path of the parent folder created in the previous step. Here’s how your Create Folder action should look like. ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/27.png) This ensures that the Tax Statements subfolder is correctly placed within the designated parent folder. ### ii - Create a File Request block using ‘Add to Dataroom’ Just like we did for KYC Docs, we will now create a file request block for Tax Statements using the ‘Add to Dataroom’ action. Follow the same steps as before, ensuring that: - Dataroom ID is the same as derived from the ‘Create Dataroom’ action. - Type is set to ‘File Request.’ - Name is set as ‘Tax Statements.’ - Add to destination is set to ‘Yes.’ - Path to destination folder is the full and exact path of the Tax Statements subfolder created earlier. Here’s how Add to Datatoom action looks like - ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/28.png) If "Tax Statements" is not present, the workflow directly ends without further action. ## 11 - Test the Workflow Now that everything is set up, let's test the workflow. Create a new Deal in HubSpot and select the required documents under the Request Docs property. The workflow may take a few seconds to execute, so refresh the page if needed. Once processed, navigate to the CloudFiles Connected Folder widget in the middle, where you'll find a Deal folder automatically created along with subfolders corresponding to the selected document types. The Dataroom link will also be available in the deal property. Click on the link to upload the requested documents. To verify, go back to the CloudFiles Connected Folder widget within HubSpot and check the internal folder, where the uploaded documents will be stored. These steps have been illustrated in the GIF below for a better understanding - ![](https://media.help.cloudfiles.io/tut-selective-file-collection-hs/29.gif) --- # Selective Sub-Folder Sharing https://help.cloudfiles.io/hubspot/selective-sub-folder-sharing # Selective Sub-Folder Sharing Learn how to automatically create parent and sub-folders for a HubSpot deal record and generate a shareable link to any specific subfolder using CloudFiles flow actions. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, we’ll walk you through the process of automatically creating folders and sub-folders in any external storage system, and how to directly share a link to any specific subfolder from a HubSpot record using the CloudFiles-HubSpot Integration. We’ll use CloudFiles flow actions to automate the creation of these folders and sharing links efficiently. ## What to Expect By the end of this tutorial, you can expect to: - Set up an automated parent folder for a HubSpot record (e.g., deal) upon its creation. - Automatically create the desired number of subfolders within the parent folder. - Attach these folders and subfolders to your HubSpot record. - Generate a shareable link for any specific subfolder. The GIF below demonstrates the expected outcome. If you're familiar with these concepts, you should be able to complete the tutorial in under 10 minutes. ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/01.gif) ## 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/02.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/03.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/04.gif) After connecting the desired storage, we will proceed to create deal-based workflow which will be triggered when a new deal is registered. Here’s how our final workflow looks like. We will detail these elements in the sections below. ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/05.png) ## 2 - Create a Deal-based Workflow Create a new deal-based workflow from scratch and select the trigger to fire when a new deal is created as shown in the GIF below. ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/06.gif) ## 3 - Create Parent Deal Folder using ‘Create Folder’ Action The "Create Folder" action allows you to create folders in any location on any cloud storage platform directly from a HubSpot workflow. We'll use this action to first create the Parent folder, within which sub-folders will be automatically created. To use the "Create Folder" action, click the "Add" button and search for "Create Folder". Once added, you'll need to fill in a few required parameters. ### Key Parameters: - Library: This specifies the cloud storage where you want to create the folder. Select the desired storage from the drop-down field. - Folder Name: Enter the name of the folder you want to create. You can use the Deal’s name or create a custom formula for the folder name. The GIF below shows how to populate the Library and Folder Name parameters. ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/07.gif) ### Additional Parameters: - Shared Drive ID: This is needed for Google Drive and SharePoint users only, as these platforms offer multiple "drives" where documents can be uploaded. - Path to Destination: This indicates the folder where the new folder will be created. ### How to Copy the Parameters: You can easily get the values for the "Shared Drive ID" and "Path to Destination" from the CloudFiles app library. Here’s how: - Find the CloudFiles widget from any HubSpot record and click on CloudFiles. It will redirect you to your CloudFiles storage. - Under the Libraries tab, navigate to the folder where you want to store your files or create a new one. - Copy the parameter values from the metadata section on the right side of the screen. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/08.gif) For a detailed explanation of the "Create Folder" action, refer to the Create Folder detailed guide. Here's how our final "Create Folder" action looks: ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/09.png) ## 4- Create Sub-Folders using ‘Create Folder‘ Action To create sub-folders, we’ll use the same "Create Folder" action as before, with just a couple of simple adjustments. - Change the "Folder Name" to the name of the sub-folder you want to create. For example, we’re creating "Shared Documents" and "Internal Documents" sub-folders inside our Deal folder. - Update the "Path to Destination" with the exact, full path to the Parent folder created in the previous action. Here’s how your second "Create Folder" action should look: ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/10.png) You can create as many sub-folders as needed by duplicating the "Create Folder" action. You can also create sub-sub-folders and even deeper hierarchies using this method. ## 5 - Show the sub-folders on Deal Record using ‘Create Attachment’ Action The "Create Attachment Action" is used to link newly created Shared Documents and Internal Documents sub-folders to HubSpot records. Associating these sub-folders is crucial as it allows you to view and manage the sub-folder contents directly from the HubSpot record. To use this action, click the "Add" button and search for "Create Attachment," as shown below. After adding this action, you’ll be prompted to fill in a few parameters. The "Shared Drive ID" and "Library" parameters will remain the same as mentioned previously. The "Path to folder" should be the exact, full path of the subfolders you’ve created. You can easily copy this from the metadata in the CloudFiles Library, following the same steps as described in the Shared Drive ID section above. Here’s how the final "Create Attachment" action should look: ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/11.png) ## 6 - Create shareable link for the folder using ‘Share Attachment’ action The "Share Attachment Action" allows you to share attachments through HubSpot workflows. This process is similar to manually creating a sharing link for a file, folder, or dataroom from a HubSpot record. To use this action, click the "Add" button and search for “Share Attachment.” This action has a single parameter where you specify the attachment to be shared. You can get this attachment from the return value of the "Create Attachment" action of the Shared Documents folder - “New Attachment ID.” This is what the final Share Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/12.png) ## 7 - Set the sharing link of the sub-folder to deal property using ‘Edit Record’ Action In this step, we will link the URL created in the previous step to a deal property. To do this, first, create a new single-line text property in the HubSpot Deal Settings. We’ll name this property “Shareable Link.” Next, we will use the “Edit Record” action to set the shared link to this property. For the "Property to set" field, select “Shareable Link.” Under the “Shareable Link” field, set the value to the “URL” output from the previous action. The GIF below demonstrates how to configure the Edit Record action. ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/13.gif) ## 8 - Test the Workflow Now that everything is set up let's test our workflow. Start by creating a new deal in HubSpot. The workflow may take a few seconds to execute, so you might need to refresh the page if necessary. Once the workflow completes: - Go to the CloudFiles Connected Folder widget in the middle. You should be able to see the sub-folders. - Next, navigate to the properties section and look for the "Shareable Link." - Copy the link and open it in a new window. You can now share this link with your contacts, and they will be able to access the documents. The GIF below demonstrates this process. ![](https://media.help.cloudfiles.io/tut-selective-subfolder-sharing-hs/14.gif) --- # Send secure collaterals using Email Verification https://help.cloudfiles.io/hubspot/send-secure-collaterals-using-email-verification # Send secure collaterals using Email Verification Learn how to share marketing materials securely via the HubSpot-CloudFiles integration, covering both manual link sharing with email verification and automating the process end-to-end with workflows. > Kind: Tutorial · Updated: Jun 4, 2026 In this tutorial, you'll learn how to share your marketing materials by generating secure links using the HubSpot-CloudFiles integration. We’ve covered both manual sharing and automating the entire process in just a few steps. We’ll guide you through each step to ensure your files are shared securely, making it easier to manage and track the distribution of important assets. ## What to Expect : By the end of this tutorial, you can expect to - - Learn how to generate secure, trackable links for your marketing materials. - Use email verification to ensure only authorized recipients can access your files. - Understand how to send files that require recipients to verify their identity before accessing the content. - Discover how to monitor the status and activity of shared content for better tracking and follow-up. The GIF below shows the expected output. If you have a basic grasp of these concepts, you can expect to finish the tutorial in under 5 minutes. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/01.gif) Let's start with the steps to manually share files securely, enabling you to control access and track downloads. Follow these steps to create your first secure link. Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/02.png) ## 2 - Create a CloudFiles Link CloudFiles links are secure, publicly shareable links that can be used to share your PDFs and other documents. To create a CloudFiles link, go to any contact record in your system. Locate the CloudFiles Connected Folder Widget in the middle and click on the "Select Files/Folders" button. Next, choose the library where your files or folders are stored. Select the specific file or folder you want to share and create a shareable link. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/03.gif) ## 3 - Configuring Security Settings Once the link is created, you can configure the security settings. You can choose whether to enable or disable the downloading option for the file or folder. You can also set an expiry date for the link or decide after how many views it should expire. If needed, you can protect the file or folder by adding a password. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/04.gif) ## 4 - Setting Up the Email Wall To add an extra layer of security, you can put up an email wall. This will require viewers to provide their email address before accessing the file. If you need stronger protection, you can set up a hard email wall. This requires viewers to authenticate by logging in with their Google or Microsoft accounts, or they can request a temporary view code sent to their inbox. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/05.gif) ## 5 - Restricting Access You can control who can access your shared files. To allow specific people access, add their email addresses in the "Restrict to specific emails" section under the allow list. If there are individuals you want to block, add their email addresses in the block list. Similarly, you can restrict access based on specific domains. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/06.gif) If you already have a list of contacts in HubSpot, you can use the "Allow HubSpot Contact List" feature to quickly share the file with a specific list. This option can save time when managing large groups of contacts. Once you have configured all the settings and restricted access as needed, simply copy the shareable link and send it to your intended viewers. This allows them to securely access the file or folder based on the permissions you’ve set. The GIF below shows the expected output. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/07.gif) ## Automate File Sharing with Email Verification Now that you’ve learnt manual sharing, let’s automate the process to save time and ensure secure, consistent file distribution. Follow these steps to set up your automated workflow. ### 1 - Pre-requisites Before you start with the set-up, please ensure you have installed CloudFiles and connected it to your cloud storage of choice. ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/08.png) ### Connect your storage Login to your external storage of choice such as Google Drive, SharePoint etc. through the CloudFiles interface. This will give you instant access to your external files within HubSpot. The GIF below shows the steps quickly. Check out Quick start for file connector in HubSpot for more information. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/09.gif) ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/10.gif) After connecting the desired storage, we will proceed to create contact-based workflow which will be triggered when a new contact is registered. Here’s how our final workflow looks like. We will detail these elements in the sections below. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/11.png) ### 2 - Create Contact-based Workflow To set up a workflow that provides new contacts with access to a specific file, start by creating a contact-based workflow from scratch. Select the trigger to fire when a new contact is created as shown in the GIF below. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/12.gif) ### 3 - Create Attachment The Create Attachment action allows you to associate a file or folder to HubSpot records. To use it, search for "Create Attachment" and select the action. To use the “Create Attachment” action, simply click on add button and search for ‘Create Attachment’ as shown below. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/13.gif) Once you add this action, it will ask you to fill in certain parameters.The Library parameter is the desired Cloud storage where you wish to choose the file from. Select the desired storage from the drop down field. We also need to enter values for Shared Drive ID & Path to Destination. These are - - Shared Drive ID - This is important for Google Drive & SharePoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. - Path to file/folder - This specifies the destination of the file These parameters can be easily copied from CloudFiles app library. Follow these steps - - Find the CloudFiles widget from any HubSpot record, and click on CloudFiles. It will redirect you to your CloudFiles storage. - Under the libraries tab, navigate to file - Copy the parameter from the meta data on the right side of the screen. Check the GIF below for a quick walkthrough of these steps. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/14.gif) Here's an example of how the completed Create Attachment action should look: ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/15.png) ### 4 - Share Attachment The Share Attachment action enables you to share attachments using HubSpot workflows. Sharing an attachment is exactly the same as manually creating a sharing link of a file / folder / dataroom from HubSpot record. To use this action, simply click on add button and search for ‘Share Attachment’ . This action has only one parameter that can be set to specify the Attachment to be shared. You can derive this from the return value of the previous Create Attachment action - ‘New Attachment ID’. This is what the final Share Attachment action looks like - ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/16.png) ### 5 - Set the sharing link to contact property using ‘Edit Record’ Action In this step, we will set the link created in the last step to a contact property. For this, first create a single-line text property in the HubSpot Contact Settings. We created a property called ‘Shareable Link’. To set the shared link to the above property, we will use the Edit Record action. For the ‘Property to set’ parameter, we will choose 'Shareable Link' and under 'Shareable Link' parameter we will set it to the output ‘URL’ of the last action. The GIF below shows the configuration for the Edit Record action. ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/17.gif) ### 6- Update Link Settings The Update Link Settings action allows you to modify the settings of CloudFiles links created in your records. These settings include options for disabling downloads, setting expiration dates, and enforcing email verification, among others. This action is useful for applying security policies to your shared links. In this step, we’ll update the URL of the attachment and enable email verification of the enrolled contact. First, choose a link under “Links to Update” — you can either select the latest link or all links used in the workflow. Next, decide whether to disable downloads by selecting “Yes” or “No” under “Disable Downloads.” You can configure the link’s expiry date in the “Expires on” section and specify the time after which the link should expire. Alternatively, set the link to deactivate after a specified number of days in “Expires After (Number of days)” or after a desired number of unique views in “Expires After (Number of views).” To add an extra layer of protection, you can set a password for the link by selecting “Yes” under “Update Link Password.” For collecting email addresses, choose “Yes” under “Requires Email for accessing the Link.” To enforce email verification, select “Yes” from “Enforce Email Verification” and under “Allowed Emails,” choose the property with access permissions. Here, I’ve selected the “Email” property of the enrolled contact. Here's an example of how the completed Create Attachment action should look: ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/18.png) That’s it. Save and activate the flow. In the next section, we will test the workflow. ### 7 - Test the Workflow Now that everything is set up, let’s test our flow. Simply create a new contact in HubSpot. The workflow may take a few seconds to execute, so refresh the page if needed. Navigate to the properties section and look for "Shareable Link." Copy the link and open it in a new window. Copy the email ID of the respective contact, and you will be able to access the file. This is shown in the GIF below - ![](https://media.help.cloudfiles.io/tut-send-secure-email-hs/19.gif) --- ## HubSpot: Document Sharing --- # Document Sharing (Document Sharing) https://help.cloudfiles.io/hubspot/document-sharing # Document Sharing Document Sharing by CloudFiles lets teams create secure share links for files, folders, and other shared content directly from HubSpot. It helps you control how content is accessed, apply branding and security settings, and track engagement without moving files out of their original storage location. > Kind: Guide · Updated: Jul 8, 2026 Document Sharing by CloudFiles lets teams create secure share links for files, folders, and other shared content directly from HubSpot. It helps you control how content is accessed, apply branding and security settings, and track engagement from shared documents without moving files out of their original storage location. Get started with these two key sections: - Setup & Configuration - This section explains how to set up your account, how to use the setup wizard guide to generate secure links, license management and usage. - Features - This section covers the main sharing capabilities in HubSpot, including file and folder sharing, link security, branding, analytics, and sharing-related automations. --- # Setup & Configuration (Document Sharing) https://help.cloudfiles.io/hubspot/Iccx-setup-and-configuration # Setup & Configuration The Document Sharing setup and configuration in CloudFiles defines how documents are sourced, shared, secured, and accessed within HubSpot. This article provides an overview of the key configuration areas involved in enabling and managing Document Sharing, with detailed instructions available in the individual articles. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Document Sharing setup and configuration in CloudFiles defines how documents are sourced, shared, secured, and accessed within HubSpot. This article provides an overview of the key configuration areas involved in enabling and managing Document Sharing, with detailed instructions available in the individual articles. 1. **Account Setup** — The Account Setup section covers the foundational configuration for Document Sharing. It includes enabling storage connections and defining global sharing settings such as branding, default link behaviour, compliance requirements, and viewer customisation, which apply across all newly created sharing links. 2. **Setup Wizard** — The Setup Wizard provides a guided approach to configuring Document Sharing. It walks users through connecting a library, creating a sharing link, configuring link settings, and optionally setting up a custom domain. Each step includes a video walkthrough to support accurate setup. 3. **License Management** — License Management controls user access to Document Sharing features. Admins can view license usage, invite users, assign roles, and manage the total number of Document Sharing licenses. 4. **Usage** — Usage view in Document Sharing provides visibility into how sharing activity consumes credits and storage. It covers the usage summary card, storage usage, feature usage metrics such as links created, datarooms, document views, and email interactions tracked, as well as historical usage trends, breakdown by flow action, and guidance on purchasing additional credit packs if needed. --- # Account Setup (HubSpot: Document Sharing) https://help.cloudfiles.io/hubspot/account-setup # Account Setup The Account Setup section for Document Sharing product helps you configure the foundational settings required to enable sharing, control access, and customize how shared documents appear to external viewers. > Kind: Guide · Updated: Jun 4, 2026 The Account Setup section for Document Sharing product helps you configure the foundational settings required to enable sharing, control access, and customize how shared documents appear to external viewers. This article provides a high-level overview of the Connections page and Document Sharing settings. ## Connections Settings The Connections settings determines where documents can be sourced from for sharing. From this page, you can enable one or more supported cloud libraries for Document Sharing, including: - CloudFiles Library - Google Drive - OneDrive - SharePoint - Dropbox - Box - Microsoft Teams - HubSpot Once enabled, files from the selected libraries become available for creating shareable links. You can toggle libraries on or off at any time and save changes instantly. ![](https://media.help.cloudfiles.io/ds-account-setup-hs/01.png) ## Document Sharing Settings The Document Sharing settings section allows you to control branding, default link behavior, compliance requirements, and viewer experience. These settings apply across all newly created sharing links. Below is a brief overview of each available tab: ### Branding The Branding tab lets you customize how your shared links represent your company. Here, you can configure your website URL, upload a logo, and set a branded subdomain or custom domain for sharing links. ![](https://media.help.cloudfiles.io/ds-account-setup-hs/02.png) ### Link Defaults The Link Defaults tab defines the default behavior for all newly created document links. You can control whether links are online by default, allow downloads, and set expiration rules to manage access automatically. ![](https://media.help.cloudfiles.io/ds-account-setup-hs/03.png) ### Compliances The Compliances tab helps you meet privacy and regulatory requirements. It allows you to enable end-user consent, customize consent statements, and add your privacy policy URL, which is shown to viewers when accessing shared documents. ![](https://media.help.cloudfiles.io/ds-account-setup-hs/04.png) ### Viewer Customisation The Viewer Customisation tab controls the end-user viewing experience. From here, you can enable HubSpot tracking, configure login options for viewers, and adjust the default theme and interface behavior of the document viewer. ![](https://media.help.cloudfiles.io/ds-account-setup-hs/05.png) --- # Branding https://help.cloudfiles.io/hubspot/branding # Branding Through the Branding settings, CloudFiles allows you to fully white-label your document viewer by adding your company logo, website, and a custom domain or subdomain for all shared CloudFiles links. > Kind: Guide · Updated: Jun 4, 2026 Through the Branding settings, CloudFiles allows you to fully white-label your document viewer by adding your company logo, website, and a custom domain or subdomain for all shared CloudFiles links. These settings are available under the Document Sharing tab within Document Sharing settings and help you deliver a consistent, professional, and brand-aligned experience to your viewers. ![](https://media.help.cloudfiles.io/ds-branding-hs/01.png) To white-label your CloudFiles Document Viewer with your company website and custom domain, you'll need to purchase an Enterprise license. This process involves the following steps: ## Accessing the Branding settings page In order to set your custom branding & domain, you need to be logged in with your admin account. This is detailed in the steps given below - - Go to https://app.cloudfiles.io and sign in with your admin email. - Click the Document Sharing tab on the top navigation bar. - From the left sidebar, open Settings and select Document Sharing. - Select branding among the tabs. Follow the steps shown in the GIF to set up your custom branding and domain. ![](https://media.help.cloudfiles.io/ds-branding-hs/02.gif) ## Adding Website Add your company website here; this is used to fetch the favicon displayed in the links. This setting allows you to display your website’s favicon on all shared CloudFiles links. If no favicon is added, CloudFiles will use its default icon. ![](https://media.help.cloudfiles.io/ds-branding-hs/03.png) ## Adding Logo This setting allows you to display your own logo on shared links, replacing the default CloudFiles logo. The example below shows how your logo will appear in the top left of the viewer. Once you have followed these steps, your CloudFiles previews & links should start showing your favicon & logo. Even your old links would update. For example, if your logo is "iDEMO" and your domain is "idemo.com," so, once you've completed the steps, they will appear as follows: ![](https://media.help.cloudfiles.io/ds-branding-hs/04.png) ## Adding Subdomain Create a unique CloudFiles subdomain to brand your shared links. Enter your preferred name to generate links such as yourname.cloudfiles.to. ![](https://media.help.cloudfiles.io/ds-branding-hs/05.png) ## Adding Custom Domain In order to add your custom domain, you first need to map CloudFiles with your DNS provider. This process is called CNAME mapping and is usually handled by IT teams in large organizations. Although the steps may change based on the DNS provider, here are the main steps to be followed. If you are not the IT admin, it is best to get them involved so they can easily understand and implement these - Go to your DNS provider where yourdomain.com DNS is purchased from. - Open the DNS settings - Create a new record with type CNAME - For that record, host = the subdomain name you want. This can be anything that you like, for example - docs, files etc. - For value, add cname.cloudfiles.io - For TTL select 5 minutes. Your new sub-domain will become accessible after this much time. Once the CNAME Mapping is done, you can add the custom domain through the setting provided in the Branding section. Follow the steps below in order to do the same. - Click on the Configure button to initiate the process, this will result in prompting a input to add your custom domain, click Continue once you have added the domain. Refer to the image given below for further explanation. ![](https://media.help.cloudfiles.io/ds-branding-hs/06.jpg) - Once you have clicked "Continue", the system will attempt to configure your domain. If the domain is successfully configured you will see "Active" state. You may get "Missing Configuration" state otherwise, as shown in the image below. ![](https://media.help.cloudfiles.io/ds-branding-hs/07.jpg) Once you have configured everything, click on the "Update" button. ### How does custom domain affect current links? After the CNAME mapping is completed on our side, your links will update. Your old links will continue to work but won't redirect to the new links. CloudFiles keeps the link slug same but replaces the prefix. E.g. https://cloudfiles/slug will become https://docs.yourdomain.come/slug --- # Link Defaults (Guide · HubSpot) https://help.cloudfiles.io/hubspot/link-defaults # Link Defaults Link Default Settings define how newly created CloudFiles links behave by default, covering General Settings (status, download, expiry, notifications, updates) and Security Settings (password policy, require email) for shared documents. > Kind: Guide · Updated: Jun 4, 2026 Link Default Settings define how newly created CloudFiles links behave by default. These settings are available under the Link Default tab from the Document Sharing settings of the Document Sharing Product Tab. These settings help you control access, security, and viewer interactions across all shared documents in your workspace. Link Settings are grouped into two categories: - General: General Settings determine the default behaviour and interaction rules for your links. - Security: Security Settings define the protection and access requirements for newly created links. ![](https://media.help.cloudfiles.io/ds-link-defaults-hs/01.png) ## General Settings General Settings control the basic behaviour of your links and how recipients can interact with shared files. ![](https://media.help.cloudfiles.io/ds-link-defaults-hs/02.png) ### Status This option allows you to set the default availability of all newly generated links. When the status is set to Online, the link is active and accessible to viewers immediately upon creation. Turning it offline prevents access until you manually enable it. ![](https://media.help.cloudfiles.io/ds-link-defaults-hs/03.png) ### Download This setting determines whether viewers are allowed to download the file from the shared link. When downloading is enabled, recipients can save a local copy. If disabled, the file can only be viewed through the CloudFiles viewer, providing an extra layer of control and security. ![](https://media.help.cloudfiles.io/ds-link-defaults-hs/04.png) ### Expiry Expiry lets you set an automatic limit on how long a link remains accessible. You can choose to disable a link after a specific number of views or after a certain number of days. Once the limit is reached, CloudFiles automatically disables the link to prevent further access. ![](https://media.help.cloudfiles.io/ds-link-defaults-hs/05.png) ### Notifications This setting controls how often you are notified about viewer activity. You can choose to receive a notification on the first view, a notification on every view, or no notifications at all. This helps you stay informed about engagement without overwhelming your inbox. ![](https://media.help.cloudfiles.io/ds-link-defaults-hs/06.png) ### Updates This option allows viewers to subscribe to updates on the file. When enabled, anyone accessing the link can opt in to receive notifications whenever the shared file is updated or replaced. This is useful for documents that change frequently or require ongoing recipient awareness. ![](https://media.help.cloudfiles.io/ds-link-defaults-hs/07.png) ## Security Settings Security Settings help enforce access policies and safeguard sensitive documents shared through CloudFiles links. ![](https://media.help.cloudfiles.io/ds-link-defaults-hs/08.png) ### Password Policy This section defines the password requirements for your team members when they create password-protected links. You can enforce rules such as minimum and maximum password length, required uppercase characters, lowercase characters, numbers, and symbols. These policies ensure that all link passwords meet your organisation’s security standards. ![](https://media.help.cloudfiles.io/ds-link-defaults-hs/09.png) ### Require Email Determines whether viewers must enter their email address before opening the link. CloudFiles offers three ways to require an email address before someone can access a shared file. These options help improve accountability, track engagement, and control who can view your documents. ### Email Collection (Soft Gated Link) With soft-validation, your client will need to enter an email address to access the file. Please note that this email is not verified by CloudFiles (that's why the name soft-validation). If you require email verification, refer to the Hard Validation feature below. ### Email Authentication (Hard Gated Link) With hard-validation, your client will need to enter and verify an email address to access the file. Verification can be done in a number of ways. Client can either login through Google or Microsoft account or they can get a one-time verification code on their email. ### Restrict Access to List of Emails / Domains With email access control you can create a list of email ids, that can or cannot access your documents. Along with this you can also block access to email ids from viewing your document. This applies equally well to complete domains as well. ![](https://media.help.cloudfiles.io/ds-link-defaults-hs/10.png) Once you have configured everything, click on the "Update" button. --- # Compliances https://help.cloudfiles.io/hubspot/compliances # Compliances The Compliance section helps you meet legal, regulatory, and organisational data-protection requirements when sharing documents through CloudFiles. > Kind: Guide · Updated: Jun 4, 2026 The Compliance section helps you meet legal, regulatory, and organisational data-protection requirements when sharing documents through CloudFiles. These settings allow you to control how end-user information is collected and ensure that your privacy notices are clearly communicated to viewers. All compliance configurations set here apply as defaults to every newly created link. The following tutorial on Data Consent and Privacy Notice will guide you through the complete setup. ![](https://media.help.cloudfiles.io/ds-compliances-hs/01.png) ## End User Data Collection Consent This setting enables a consent prompt that appears before viewers submit any personal information, such as their email address. When turned on, users must explicitly agree to the provided statement before they can proceed. This is particularly important for teams that must comply with consent-based regulations or whenever transparency around data handling is required. ### Consent Statement You can customise the message shown in the consent prompt. This statement should explain what information is being collected, why it is needed, and how it will be used. Using clear and concise language ensures viewers understand exactly what they are agreeing to. The text you provide here is shown to viewers each time they access a link requiring consent. ![](https://media.help.cloudfiles.io/ds-compliances-hs/02.png) ## Privacy Policy This option allows you to add your organisation’s privacy policy URL. The link appears at the bottom of the CloudFiles viewer, giving recipients direct access to detailed information about data practices. Including your privacy policy promotes openness and supports compliance with internal and external data-protection standards. ![](https://media.help.cloudfiles.io/ds-compliances-hs/03.png) Once you have configured everything, click on the "Update" button. By configuring these compliance settings, you ensure that every shared link aligns with your organisation’s privacy expectations and provides viewers with the clarity they need when sharing their information. --- # Viewer Customisation https://help.cloudfiles.io/hubspot/viewer-customisation # Viewer Customisation Viewer Customisation settings let you control how the CloudFiles document viewer behaves and appears to your audience, including HubSpot tracking, login options, default theme, and IP tracking. > Kind: Guide · Updated: Jun 4, 2026 Viewer Customisation settings allow you to control how the CloudFiles document viewer behaves and appears to your audience. These settings are available under the Document Sharing settings of the Document Sharing Product Tab. These settings help you tailor the viewing experience, manage authentication methods, and enhance tracking based on your business needs. Here are the settings available in this section: - HubSpot Tracking Code – Enables HubSpot tracking so you can measure viewer engagement inside HubSpot. - Viewer Login Options – Lets you choose how viewers authenticate before accessing your documents. - Viewer Default Theme – Sets whether the viewer opens in light or dark mode by default. - Track IP – Allows CloudFiles to record the IP address of viewers for additional visibility and auditing. ![](https://media.help.cloudfiles.io/ds-viewer-customisation-hs/01.png) ## HubSpot Tracking Code This option allows you to embed your HubSpot tracking code directly into the CloudFiles viewer. When enabled, viewer interactions become trackable within HubSpot, helping you measure engagement and gain deeper insights into how users interact with your shared content. If needed, you can also enable HubSpot private content, which ensures that tracking works even when the content is protected behind HubSpot’s private access model. ![](https://media.help.cloudfiles.io/ds-viewer-customisation-hs/02.png) ## Viewer Login Options These settings define the login methods viewers can use before accessing your shared documents. You can enable multiple options, including Email, Google, and Microsoft, giving your audience flexibility while ensuring you capture verified viewer information. ![](https://media.help.cloudfiles.io/ds-viewer-customisation-hs/03.png) ## Viewer Default Theme This option allows you to control whether your document viewer uses a light or dark theme by default. Selecting Light or Dark defines the initial appearance for all viewers, though users may still switch modes if allowed. Setting a default theme helps you maintain brand consistency or accommodate preferences for readability. ![](https://media.help.cloudfiles.io/ds-viewer-customisation-hs/04.png) ## Track IP Track IP enables CloudFiles to capture the IP address of each viewer who opens your link. This provides additional visibility into viewer location and access behaviour, which may be valuable for auditing, security monitoring, or compliance processes. When disabled, CloudFiles will not record any IP information. ![](https://media.help.cloudfiles.io/ds-viewer-customisation-hs/05.png) Once you have configured everything, click on the "Update" button. By configuring these viewer customisation settings, you can create a consistent, branded, and insight-driven viewing experience that aligns with your organisation’s access, tracking, and presentation standards. --- # Setup Wizard (HubSpot: Document Sharing) https://help.cloudfiles.io/hubspot/MHzA-setup-wizard # Setup Wizard The Document Sharing Setup Wizard helps you configure CloudFiles to securely share files and folders from HubSpot. > Kind: Guide · Updated: Jun 4, 2026 The Document Sharing Setup Wizard helps you configure CloudFiles to securely share files and folders from HubSpot. It guides you through the essential steps required to connect your storage, generate shareable links, control access, and optionally brand your links with a custom domain. ![](https://media.help.cloudfiles.io/ds-setup-wizard-hs/01.png) Each step in the wizard includes an embedded video walkthrough, making it easier to understand and complete the setup with visual guidance. ## Accessing the Setup Wizard You can access the Document Sharing setup wizard from the Document Sharing tab in the CloudFiles app from the left-hand side bar. A progress tracker on the left shows how many steps are completed and how many remain, allowing you to continue the setup at your own pace. The wizard consists of four guided steps: ### Step 1: Connect Your Library This step determines where your shared files will be stored. If you already have a Document Management license, you can connect supported external storage platforms such as Google Drive, SharePoint, OneDrive, etc. If you only have a Document Sharing license, CloudFiles uses the built-in CloudFiles library by default. For more information, read Connecting External Storage Accounts. Once enabled, the selected libraries become available for uploading and sharing files. A short video is available in this step to demonstrate how to enable and save library connections. ![](https://media.help.cloudfiles.io/ds-setup-wizard-hs/02.png) ### Step 2: Create a Sharing Link After your library is connected, you can create shareable links for files or folders. ![](https://media.help.cloudfiles.io/ds-setup-wizard-hs/03.png) This step walks you through uploading or selecting a file, opening the share option, and generating a trackable sharing link. Once created, the link can be copied and shared externally. ### Step 3: Configure Link Settings This step allows you to customise how your sharing links behave and who can access them. You can control download permissions, set expiration dates, enable view notifications, and apply security settings such as password protection or email verification. These options help ensure your documents are shared securely and only with the intended audience. ![](https://media.help.cloudfiles.io/ds-setup-wizard-hs/04.png) ### Step 4: Set Up a Custom Domain For teams on the Enterprise plan, CloudFiles allows you to brand shared links with your own domain. In this step, you configure a custom subdomain by updating DNS settings and validating the domain within CloudFiles. Once active, all newly created sharing links will use your branded domain, improving trust and consistency when sharing documents externally. ![](https://media.help.cloudfiles.io/ds-setup-wizard-hs/05.png) ### Completion and Progress Tracking As each step is completed, the wizard marks it accordingly and updates your overall progress. You can revisit any step later if changes are needed, and videos remain available for reference at all times. The Document Sharing Setup Wizard ensures that CloudFiles is configured for secure, trackable, and branded document sharing directly from HubSpot. By following the guided steps and using the built-in videos for additional clarity, you can quickly enable sharing, control access, and deliver a professional experience to recipients. --- # License Management (HubSpot: Document Sharing) https://help.cloudfiles.io/hubspot/Xxo3-license-management # License Management The License Management section for Document Sharing allows admins to control which users can access the CloudFiles sharing features. > Kind: Guide · Updated: Jun 4, 2026 The License Management section for Document Sharing allows admins to control which users can access the CloudFiles sharing features. Admins can view license usage, manage user access, invite new users, and adjust the total number of available Document Sharing licenses. Each CloudFiles product has its own license configuration, and changes made under Document Sharing apply only to sharing-related functionality. CloudFiles also supports Partner Seats, allowing organizations to invite external implementation partners or HubSpot agencies with limited, dedicated access. ## Accessing Document Sharing License Management Document Sharing licenses can be managed from Settings → License Management in CloudFiles. At the top of the page, select the Document Sharing tab to view licenses specific to this product. The Document Sharing Licenses page provides a centralised view of license availability and user access. ![](https://media.help.cloudfiles.io/ds-license-mgmt-hs/01.png) At the top of the section, a summary indicates how many Document Sharing licenses are available. Below this, the user table lists everyone associated with the Document Sharing product. ![](https://media.help.cloudfiles.io/ds-license-mgmt-hs/02.png) ### User List and License Status The user table displays the following details for each user: - Name and Email, which identify the user. - License Status, showing whether the user’s Document Sharing license is Active or Inactive. - Role defines the user’s level of access. CloudFiles supports three roles: - Admin – Can manage licenses, invite users, and configure the account. - User – Can access the products assigned to them. - Partner – Intended for external implementation partners or agencies. Partner users can access only the CloudFiles account they were invited to. > **Note** — Partner Seats are currently available by request. If you’d like to enable Partner Seats for your CloudFiles account, contact our support team. ![](https://media.help.cloudfiles.io/ds-license-mgmt-hs/03.png) Users with an Active license can access Document Sharing features, while users marked as Inactive do not have access until a license is assigned. Users with the Admin role can manage licenses, invite new users, and add new licenses. ### Inviting Users to Document Sharing The "Invite User" option allows admins to invite new users to CloudFiles with access to the Document Sharing product. When inviting a user, the admin specifies the email address and assigns a role. Once the invitation is accepted, an active Document Sharing license is automatically assigned if one is available. Invitations that have not yet been accepted appear under pending invitations, allowing admins to track outstanding invites. ![](https://media.help.cloudfiles.io/ds-license-mgmt-hs/04.png) ### Inviting a Partner If Partner Seats are enabled for your CloudFiles account, admins can invite external implementation partners or HubSpot agencies with a dedicated Partner role. Partner users are intended for external collaborators who help configure or manage the CloudFiles account on behalf of your organization. When inviting a Partner: - Only external email addresses can be invited. - A Partner Seat must be available. ### Updating Roles and License Status Admins can directly update a user’s role and license status from the License Management table. Each user entry includes editable fields that allow quick adjustments without leaving the page. Using the edit (pencil) icon, admins can change a user’s role between Admin and User, depending on the required level of access. ![](https://media.help.cloudfiles.io/ds-license-mgmt-hs/05.png) Similarly, the license status can be toggled between Active and Inactive, giving admins control over whether a user currently has access to the Document Sharing product. ![](https://media.help.cloudfiles.io/ds-license-mgmt-hs/06.png) ### Managing Document Sharing Licenses The "Manage Licenses" option allows administrators to control the total number of Document Sharing licenses. When selected, a modal opens where the license count can be increased or decreased. The modal displays the current number of licenses in use along with the updated total after changes are made. Once confirmed, the updated license count becomes immediately available for assignment. ![](https://media.help.cloudfiles.io/ds-license-mgmt-hs/07.png) License Management for Document Sharing gives admins clear visibility and control over who can access sharing features in CloudFiles. By managing licenses, roles, and invitations from a single screen, teams can ensure that document sharing is secure, controlled, and aligned with their subscription. > **Note** — Partner Seats are managed separately from standard product licenses. They do not count toward your purchased license total. ### Deleting a User Admins can permanently remove a user from the CloudFiles account directly from the License Management screen. ![](https://media.help.cloudfiles.io/ds-license-mgmt-hs/08.png) This action cannot be undone. When a user is deleted, they are completely removed from the CloudFiles account and will no longer have access to any CloudFiles products. Any files, folder, Datarooms, shared link or other resources owned by the user are automatically reassigned to the admin initiating the delete action. This ensures that existing resources remain accessible and no data is lost after the user is removed. --- # Usage (HubSpot: Document Sharing) https://help.cloudfiles.io/hubspot/aF9K-usage # Usage The Document Sharing usage view provides visibility into how sharing activity consumes credits and storage, and how documents are accessed and engaged with. > Kind: Guide · Updated: Jun 4, 2026 The Document Sharing usage view provides visibility into how sharing activity consumes credits and storage, and how documents are accessed and engaged with. It combines usage tracking with engagement-related metrics to help monitor document sharing behaviour. ## Accessing Document Sharing Usage To access the Document Sharing usage view: - Open the CloudFiles app in HubSpot. - Select Document Sharing from the top navigation bar. - From the left sidebar, click Usage. ![](https://media.help.cloudfiles.io/ds-usage-hs/01.png) ### Sections Available in the Usage View The usage view is divided into multiple sections that provide insight into billing usage, storage consumption, feature activity, and historical trends related to document sharing. ## Usage Summary Card The Usage Summary Card provides an overview of credit usage for the current billing cycle. It displays the billing cycle date range, total credits consumed so far, remaining credits, and the number of days left before the cycle resets. This section helps monitor how sharing activity impacts available credits. ![](https://media.help.cloudfiles.io/ds-usage-hs/02.png) ### Purchasing Additional Credits If your usage exceeds the included limits in your current plan, you can purchase additional credit packs as an add-on. ### Document Sharing Pack | Plan | Price/ month | Views/ month | Tracked emails/ month | Datarooms/ month | |---|---|---|---|---| | Small Pack | $10 | 1,000 | 100 | 25 | | Medium Pack | $75 | 10,000 | 1,000 | 250 | | Large Pack | $500 | 100,000 | 10,000 | 2500 | These add-ons allow you to extend limits on Views,Datarooms and emails tracked even during periods of higher usage. Additional limits are applied to your account immediately and are consumed in the same way as your existing plan limits. ## Storage Usage Card The Storage Usage Card shows how CloudFiles storage is being utilised. It displays the total storage available under your plan, the amount of storage currently used, and the remaining available storage. This section helps track storage consumption as files and datarooms are created and shared. ![](https://media.help.cloudfiles.io/ds-usage-hs/03.png) ## Feature Usage Metrics The Feature Usage Metrics section provides a summary of key sharing and engagement activity. It shows the total number of links created, the number of datarooms created, aggregate document views across shared content, and the number of email interactions tracked. These metrics provide a high-level view of document sharing and engagement. ![](https://media.help.cloudfiles.io/ds-usage-hs/04.png) ## Historical Usage Analysis The Historical Usage Analysis section visualises document sharing usage over time. You can select predefined time ranges such as Last Year or Last 180 Days, or use a Custom Date Range for targeted analysis. Usage data can be displayed using Bar or Line graphs to understand trends and fluctuations in sharing activity. ![](https://media.help.cloudfiles.io/ds-usage-hs/05.png) ## Filters Filters allow you to refine the historical usage data. Usage can be grouped by interval, including Daily, Weekly, or Monthly views. Actions can also be filtered to focus on specific sharing operations, such as Create Attachment or Create Link. These filters help isolate specific sharing behaviours. ## Breakdown by Flow Action The Breakdown by Flow Action section shows how sharing-related automation credits are consumed across individual actions. It displays total credits consumed per action and the relative contribution of each action to overall usage. This helps identify which sharing workflows drive the highest credit consumption. ![](https://media.help.cloudfiles.io/ds-usage-hs/06.png) --- # Features (Document Sharing · HubSpot) https://help.cloudfiles.io/hubspot/features # Features The Document Sharing features in CloudFiles help teams share content securely from HubSpot while controlling access, branding, and engagement visibility. These articles covers the key capabilities available when sharing files, folders, and datarooms with external recipients. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Document Sharing features in CloudFiles help teams share content securely from HubSpot while controlling access, branding, and engagement visibility. These articles covers the key capabilities available when sharing files, folders, and datarooms with external recipients. - File and Folder Sharing: This article explains how to create shareable links for individual files and folders, how shared content is viewed in the CloudFiles viewer, and how branding applies to the sharing experience. - Link Settings and Security: This article overs the controls available on shared links, including online/offline access, download permissions, expiry rules, notifications, password protection, email verification, and allow/block lists. - Dataroom Management: This article describes how datarooms are used to share multiple files and folders through a single link, organise content into groups, collect documents through file requests, and manage ongoing updates. - Engagement & Analytics: This article explains how CloudFiles tracks views, downloads, time spent, and session-level engagement for shared content, and how this data is surfaced inside HubSpot for reporting and follow-up. - Automations: This article outlines the workflow actions available for Document Sharing, including creating and managing datarooms, generating share links, updating link settings, moving files, retrieving attachment details, and updating resource permissions. --- # File and Folder Sharing https://help.cloudfiles.io/hubspot/file-and-folder-sharing # File and Folder Sharing CloudFiles provides link-based sharing for files and folders stored in connected external storage, letting users control access, downloads, expiry, and branding directly from HubSpot. > Kind: Guide · Updated: Jun 4, 2026 CloudFiles provides link-based sharing for files and folders stored in connected external storage. Sharing is managed directly from HubSpot and allows users to control access, downloads, expiry, and branding while keeping files in their original storage location. This article explains the following: - Link Creation for Files and Folders – Explains how shareable links are created and configured for individual files and entire folders. - File Viewer – Describes how recipients access and view shared files and folders through the CloudFiles viewer. - Custom Branding Overview – Provides an overview of how branding applies to shared links and previews. ## Link Creation for Files and Folders CloudFiles supports link creation for both individual files and entire folders. Once the file or the folder has been associated with the App Card, links are created inside HubSpot from the Actions menu available for each file or folder. When a link is created, CloudFiles generates a secure URL that opens the selected file or folder in the CloudFiles viewer on sharing. Links must be set to Online before they can be accessed externally. ![](https://media.help.cloudfiles.io/ds-file-folder-sharing-hs/01.png) The Link Settings and Security screen allows users to control how the content can be accessed. Users can enable or disable downloads, define when the link should expire, and choose whether expiry is based on a specific date and time or a maximum number of views. Read more about The same link creation and configuration experience applies to both files and folders. ## File Viewer All shared content opens in the CloudFiles File Viewer. The viewer runs in the browser and does not require recipients to sign in or install additional software. For file links, the viewer displays the selected document and enforces the permissions defined during link creation, including download restrictions and expiry rules. ![](https://media.help.cloudfiles.io/ds-file-folder-sharing-hs/02.png) For folder links, the viewer displays the folder structure and lists all files available within that folder. Recipients can preview individual files based on the access rules applied to the folder link. ![](https://media.help.cloudfiles.io/ds-file-folder-sharing-hs/03.png) The viewer reflects the active branding and domain configuration applied to the account at the time the link is accessed. ## Custom Branding Overview CloudFiles allows organisations to apply custom branding to shared links and the File Viewer. This includes using a custom logo, favicon, and domain instead of CloudFiles defaults. Custom branding is available on the Enterprise plan. Branding applies uniformly across all shared files and folders and affects both new and existing links. Detailed setup instructions are available in the Custom Branding & Domain configuration article. --- # Link Settings and Security https://help.cloudfiles.io/hubspot/link-settings-and-security # Link Settings and Security CloudFiles link-level controls let teams manage access, downloads, expiry, notifications, and security for shared files and folders without moving them out of storage. > Kind: Guide · Updated: Jun 4, 2026 While creating links for files or folders, CloudFiles provides detailed link-level controls to manage access, security, downloads, and expiry. These settings allow teams to control who can access shared content, how it can be accessed, and when access should end, without moving files out of their original storage. This article explains the following sections: - Access Controls – Explains how link availability and viewer access are managed. - Download Settings – Describes how downloading shared content can be allowed or restricted. - Expiry Settings – Explains how and when links expire based on time or views. - Notification settings - are also available to control when the link owner is informed about link views. - Security Settings – Describes authentication, password protection, and access restrictions. ## Access Controls Access to a shared file or folder is controlled using the Online toggle available in the Get Link modal. When a link is set to Online, the link is active and can be accessed by anyone who has the URL, subject to the security settings applied. When the link is set to Offline, the link is immediately disabled and cannot be accessed, even if the URL is shared. ![](https://media.help.cloudfiles.io/ds-link-settings-hs/01.png) The Get Link modal also provides options to copy the link and preview it before sharing. These actions do not affect access permissions but allow users to validate link behaviour. ![](https://media.help.cloudfiles.io/ds-link-settings-hs/02.png) ## Download Settings The Download settings control whether recipients are allowed to download the shared file or files within a folder. ![](https://media.help.cloudfiles.io/ds-link-settings-hs/03.png) When downloading is enabled, recipients can download the file directly from the CloudFiles viewer. For folder links, downloading applies to individual files based on the same setting. When downloading is disabled, recipients can only view the content in the CloudFiles viewer. Download buttons are hidden, and files cannot be saved locally through the viewer. Download restrictions are enforced consistently across all supported file types. ![](https://media.help.cloudfiles.io/ds-link-settings-hs/04.jpg) ## Expiry Settings Expiry settings define when a shared link should stop working automatically. Links can expire based on a specific date and time or after a defined number of views. When both conditions are configured, the link expires as soon as the first limit is reached. ![](https://media.help.cloudfiles.io/ds-link-settings-hs/05.png) Once a link expires, it becomes inaccessible and behaves the same as a link that has been set offline. Expired links can be reactivated by updating the expiry settings. Expiry settings apply equally to file and folder links. ## Notification Settings Notification settings control when the link owner is notified about link activity. Users can choose to receive notifications only when a link is viewed for the first time, receive notifications for every view, or disable notifications entirely. ![](https://media.help.cloudfiles.io/ds-link-settings-hs/06.png) These settings apply to both file and folder links and do not affect link access or security behaviour. Notifications are informational and are intended to provide visibility into link engagement. ## Security Settings Security settings are configured from the Security tab in the Get Link modal and provide additional control over who can access the shared content. - Password protection allows the link to be secured with a password. Recipients must enter the correct password before accessing the content. ### To enable password protection on a link: - Select the file, folder, or data room you want to protect from the App card/sidebar widget, then click Share. - Go to the Security tab in the Get Link modal. - Turn on the "Protect with password" option, enter the password you want to use, and save. Once set, anyone opening the link will be prompted to enter this password before they can view the content. The password can be updated or removed at any time, even after the link has already been shared. ![](https://media.help.cloudfiles.io/ds-link-settings-hs/07.png) - Email-based access restricts link access to verified email addresses. When enabled, recipients must enter their email address before viewing the content. Email verification can be enforced to ensure access is granted only after verification. Allow and block lists can be used to explicitly permit or deny access to specific email addresses or email domains. These restrictions apply even if the user has the correct link and password. ![](https://media.help.cloudfiles.io/ds-link-settings-hs/08.png) - CloudFiles also supports restricting access based on HubSpot contact lists. When enabled, only contacts included in the selected HubSpot list can access the link. ![](https://media.help.cloudfiles.io/ds-link-settings-hs/09.png) All security settings apply immediately and affect both existing and future link access. --- # Dataroom Management https://help.cloudfiles.io/hubspot/dataroom-management # Dataroom Management Datarooms in CloudFiles are structured containers used to share multiple files and folders and to collect documents from external users through a single link. > Kind: Guide · Updated: Jun 4, 2026 Datarooms in CloudFiles are structured containers used to share multiple files and folders and to collect documents from external users through a single link. Each dataroom is associated with a HubSpot record and provides controlled access, organisation, and visibility for all included content. This article explains the following sections: - What is a Dataroom? – Describes the purpose and behaviour of datarooms in CloudFiles. - Creating and Sharing a Dataroom Link – Explains how a dataroom link is generated, activated, and shared. - Organising Dataroom Content – Describes how groups, folders, and files are structured within a dataroom. - File and Folder Sharing – Explains how shared content behaves inside a dataroom. - File Requests – Describes how datarooms are used to collect documents from external users. - Editing and Maintaining Datarooms – Explains how dataroom content and settings can be updated. - Dataroom Analytics – Describes how dataroom usage and engagement are measured. ## What is a Dataroom? A dataroom is a centralised space that aggregates files, folders, and file request blocks under a single shareable link. It is designed to reduce the need for multiple individual links and to present related content in a single, organised view. ![](https://media.help.cloudfiles.io/ds-dataroom-mgmt-hs/01.png) Datarooms are created within HubSpot using the Sidebar widget and remain linked to the HubSpot record where they were created. This Associations ensure that all shared and collected documents remain contextually connected to the relevant CRM object. Any structural or content changes made to a dataroom are reflected immediately for all users accessing the dataroom link. ## Creating and Sharing a Dataroom Link A dataroom link is generated automatically when a dataroom is created. This link serves as the single access point for viewing and interacting with all content included in the dataroom. ![](https://media.help.cloudfiles.io/ds-dataroom-mgmt-hs/02.png) Before sharing, the dataroom link must be set to an active state. Once active, the link can be copied and shared externally. Link Settings and Security can also be applied to the dataroom. The same dataroom link remains valid even as files, folders, or file requests are added, removed, or reorganised. A new link is not required when content changes. ## Organizing Dataroom Content Content inside a dataroom is organised using a combination of groups. Groups are used to create logical sections within the dataroom. They help segment content based on purpose, stage, or category and control the order in which content appears to external users. ![](https://media.help.cloudfiles.io/ds-dataroom-mgmt-hs/03.png) Folders retain their original structure from the connected storage location and can be placed within groups. Files can be added directly or through folders and can be reordered within a group. All organizational changes are reflected immediately in the dataroom viewer without affecting the dataroom link. ## File and Folder Sharing in Datarooms Files and folders are added to the datarooms from the Content Library . Once added, they become part of the dataroom and are accessible through the dataroom link. Access to files and folders is governed by the dataroom link settings. These settings determine whether content can be viewed, downloaded, or accessed after expiry. ![](https://media.help.cloudfiles.io/ds-dataroom-mgmt-hs/04.png) When a file is updated in its original storage location, the updated version is automatically reflected in the dataroom, ensuring recipients always see the most recent version. ## File Requests in Datarooms File requests allow datarooms to collect documents from external users in a structured manner. A file request defines a specific upload requirement within the dataroom. When recipients access the dataroom link, they see clearly defined upload areas corresponding to each file request. Uploaded files are stored automatically in the destination folder configured for the request. This ensures that collected documents are placed in the correct storage location without manual intervention. ![](https://media.help.cloudfiles.io/ds-dataroom-mgmt-hs/05.png) File requests can be added, edited, or removed at any time. Changes take effect immediately and apply to all users accessing the dataroom link. ## Editing and Maintaining Datarooms Datarooms can be edited after creation to add or remove files, folders, groups, and file request blocks. Dataroom link settings, including access controls, security restrictions, expiry rules, and notifications, can be updated without generating a new link. All edits are reflected in real time for anyone accessing the dataroom. ![](https://media.help.cloudfiles.io/ds-dataroom-mgmt-hs/06.gif) ## Dataroom Analytics CloudFiles provides analytics for dataroom links to track usage and engagement. Analytics include information such as link views and interactions with content within the dataroom. These metrics help understand how recipients are engaging with shared materials. Dataroom analytics are accessible from the dataroom actions menu and are associated with the dataroom link. You can find more information on analytics in the Engagement & Analytics article. ![](https://media.help.cloudfiles.io/ds-dataroom-mgmt-hs/07.png) --- # Engagement & Analytics https://help.cloudfiles.io/hubspot/engagement-and-analytics # Engagement & Analytics CloudFiles provides engagement and analytics capabilities to track how shared files, folders, and datarooms are accessed and interacted with inside HubSpot. > Kind: Guide · Updated: Jun 4, 2026 CloudFiles provides engagement and analytics capabilities to track how shared files, folders, and datarooms are accessed and interacted with inside HubSpot. When a file is shared, CloudFiles renders it in the CloudFiles viewer. This rendering enables accurate tracking of views, downloads, time spent, and detailed interaction data. All analytics data is surfaced within HubSpot, which can be accessed from records and also used in automations, reporting, and dashboards. This article explains the following sections: - Document Analytics in HubSpot – How CloudFiles tracks and records engagement data. - Analytics Modal – What information is available in the analytics dialogue. - Understanding Engagement Metrics and Drill-Down Analytics - Metrics tracked for files, folders, and datarooms and how session-level and page-level data is structured. - Extended Tracking and Reporting- Capabilities such as how engagement is tracked for files shared via email, how to create dashboards using analytics data in HubSpot reports and how the tracking code enhances attribution and visibility.. - Additional Analytics Features – Export, notifications, and subscriptions. ## Document Analytics in HubSpot CloudFiles converts the file into an online viewable format, such as PDF or Microsoft Excel and renders it for the client when the link is accessed. It can track file opens, total views, unique views, downloads, total time spent viewing content, and page-level interaction data. These metrics are captured consistently for files, folders, and datarooms. ![](https://media.help.cloudfiles.io/ds-engagement-analytics-hs/01.png) All engagement data is pushed to HubSpot and associated with the relevant records. This data can be viewed directly on records, referenced in workflows, and used for reporting. ### Analytics Modal Analytics for files, folders, and datarooms are displayed using the Analytics modal in HubSpot. The modal can be opened from the CloudFiles App card, sidebar widget or from the activities section if the CloudFiles Timeline Activities are enabled. The Analytics modal provides a consolidated view of engagement data for a specific file, folder, or dataroom. The modal displays summary statistics, page-wise engagement data, and session-level details. Users can drill down into individual sessions to understand how content was accessed and how long it was viewed. The modal also provides controls to export analytics data and to delete analytics where required. ### Understanding Engagement Metrics and Drill-Down Analytics CloudFiles analytics provide visibility into how recipients interact with shared files, folders, and datarooms. Engagement metrics summarise overall interaction with the content, while drill-down analytics provide session-level and page-level details for deeper analysis. The sections below explain each metric and data point shown in the analytics view and how it should be interpreted. ![](https://media.help.cloudfiles.io/ds-engagement-analytics-hs/02.png) ### Views Represents the total number of times the file, folder, or dataroom link was opened. Multiple opens by the same viewer are counted as separate views. ### Sessions A session represents a single continuous viewing activity by a viewer. If the same viewer opens the link again later, a new session is recorded. ### Downloads Shows the total number of times the file was downloaded by viewers. This metric is recorded only when downloads are enabled for the link. ### Total Time Indicates the cumulative time spent by all viewers across all sessions. This includes time spent viewing each page within the document. ### Time Spent per Page Displays the amount of time viewers spent on each page of the document. This helps identify which pages of the document received the most attention. ### Session List Provides a breakdown of individual viewing sessions for the link. Each session shows when the content was accessed and how long it was viewed. ### Last Viewed On Shows the most recent date and time the content was accessed. This is updated whenever a new viewing session occurs. ### Viewer Location Indicates the approximate geographic location of the viewer based on IP data. Location is captured at the session level and may vary between sessions. ### Session Time Spent Shows the total time spent in (hh: mm: ss) during a specific viewing session. This value reflects active engagement within that session only. ## Extended Tracking and Reporting This section covers additional analytics capabilities that extend document engagement tracking beyond individual link views. ### Email Tracking CloudFiles tracks engagement for files shared through HubSpot emails when attachments are added using CloudFiles. Engagement with email attachments is tracked using the same analytics model as link-based sharing. Views, downloads, and time spent are recorded and associated with the relevant HubSpot contact or record. This allows document engagement from emails, sales sequences, and campaigns to be analyzed alongside other CloudFiles analytics. Read E-mail Attachment Tracking for more information on this. [Watch video](https://www.youtube.com/watch?v=dWOQmREAo7k) ### Dashboarding and Reporting CloudFiles custom object in HubSpot can be used to track and analyse file views. Reports can be further created to analyse engagement trends, document performance, and usage across files, folders, and datarooms. Reports can be added to dashboards to provide aggregated visibility into document engagement for teams and stakeholders. ![](https://media.help.cloudfiles.io/ds-engagement-analytics-hs/03.png) ### HubSpot Tracking Code CloudFiles also supports embedding the HubSpot tracking code into CloudFiles viewer pages. When enabled, document views are associated with HubSpot tracking cookies, UTMs, and campaign attribution data. Anonymous views can later be linked to contacts once identification occurs. The tracking code is enabled at the account level and is applied automatically to all CloudFiles viewer pages. ![](https://media.help.cloudfiles.io/ds-engagement-analytics-hs/04.png) ### Related HubSpot Capabilities CloudFiles pushes analytics-related events to HubSpot, such as the CloudFiles: File Viewed event. These events appear on record timelines and can be used in workflows, lists, and automation logic. To automate processes based on File related activities, read All CloudFiles Events and All CloudFiles Properties . ![](https://media.help.cloudfiles.io/ds-engagement-analytics-hs/05.jpg) Link personalization parameters allow recipient information to be passed directly within the link. When used with HubSpot personalization tokens, this enables ungated tracking while still associating analytics with the correct contact. When a custom domain connected to HubSpot is used, CloudFiles can read and write to the HubSpot tracking cookie, enabling enhanced attribution and association of anonymous views. ## Additional Analytics Features Analytics data can be exported directly from the Analytics modal in HubSpot for offline analysis. CloudFiles can send email notifications when files are viewed. Notification frequency can be controlled through link settings and admin-level defaults. ![](https://media.help.cloudfiles.io/ds-engagement-analytics-hs/06.png) --- # Automations (HubSpot: Document Sharing) https://help.cloudfiles.io/hubspot/automations # Automations CloudFiles workflow actions help share documents with clients and automatically collect files into the correct cloud storage folders. > Kind: Guide · Updated: Jun 4, 2026 CloudFiles workflow actions help share documents with clients and automatically collect files into the correct cloud storage folders. Files submitted through HubSpot forms can also be moved directly to cloud storage, with security permissions set automatically and records kept in sync, along with several other automation capabilities. Each action is explained with its purpose, configuration, outputs, and examples to show how it can be used in real scenarios. ## Create Dataroom Action This action is used to create a secure dataroom (a shareable file portal) directly from a HubSpot workflow. A dataroom lets you organise files and folders from connected cloud storage, share them via a single link, and collect documents from external users using file request blocks. ![](https://media.help.cloudfiles.io/ds-automations-hs/01.png) ### Configuration: - Enter the name of the dataroom, which appears as the title of the dataroom. - Optionally provide a description to give more context about the dataroom. ![](https://media.help.cloudfiles.io/ds-automations-hs/02.png) ### Output: The action returns a dataroom ID, which can be used in subsequent steps (for example, attaching the dataroom to the record or adding content). ### Example: A service team wants to collect compliance documents from new clients. When a deal reaches the “Pending Compliance” stage in HubSpot, the workflow automatically creates a dataroom named “Client Compliance Upload Portal” and attaches it to the deal record. This dataroom link can be shared with the client so they can upload required files securely (e.g., signed contracts and certificates). Once documents are uploaded, they can be stored in the desired f To learn more about this action, read the full article on Create Dataroom Action. ## Add to Dataroom Action This action is used to add files, folders, or file request blocks to an existing dataroom from a HubSpot workflow. It allows you to populate a dataroom with relevant documents from connected cloud storage or collect files from external users in one secure place. ![](https://media.help.cloudfiles.io/ds-automations-hs/03.png) ### Configuration: - Provide the Dataroom ID where the content should be added. This is usually obtained from a previous Create Dataroom action. - Choose whether you want to add existing content (files or folders) or a file request block. - If adding content, select the storage library and provide the path to the file or folder you want to include. If required, specify the Drive ID for storage systems like Google Drive or SharePoint. ![](https://media.help.cloudfiles.io/ds-automations-hs/04.png) - If adding a file request block, enter a name and optional description, and define where uploaded files should be stored. ![](https://media.help.cloudfiles.io/ds-automations-hs/05.png) ### Output: The action returns a status message, either success or failure, indicating whether the content or file request block was added to the dataroom successfully. ### Example: A customer success team uses a dataroom to manage onboarding documents for new clients. When a deal moves to the “Onboarding” stage in HubSpot, the workflow automatically adds a Getting Started Guide.pdf and a Product Documentation folder to the dataroom. A file request block titled “Upload Signed Contract” is also added so customers can securely upload their documents directly to the correct storage location. To learn more about this action, read the full article on Add to Dataroom Action ## Delete Dataroom Action This action is used to delete an existing dataroom through a HubSpot workflow. When executed, it removes the dataroom and any files that were received but not already transferred to external cloud storage. Files that have been moved or synced to connected storage are not deleted by this action. ![](https://media.help.cloudfiles.io/ds-automations-hs/06.png) ### Configuration: - Provide the Dataroom ID of the dataroom you want to delete, which is typically obtained from a previous Create Dataroom action, Get Attachment Details action, or stored in a record property. ![](https://media.help.cloudfiles.io/ds-automations-hs/07.png) ### Output: The action returns a status message, either success or failure, depending on whether the dataroom was deleted successfully. ### Example: A support operations team wants to automatically clean up datarooms when a deal is marked “Closed–Lost.” A workflow uses the stored Dataroom ID associated with the deal to trigger the Delete Dataroom action. When the deal stage changes, the workflow runs this action and removes the associated dataroom, ensuring that temporary file portals are closed and unused spaces are removed without manual work. To learn more about this action, read the full article on Delete Dataroom Action . ## Get Attachment Details Action This action is used to retrieve detailed information about one or more attachments that are already associated with a HubSpot record. Attachments are files, folders, or datarooms linked to a record and shown in the App card or as tiles in the sidebar widget. The returned details can then be used in automations and downstream actions. ![](https://media.help.cloudfiles.io/ds-automations-hs/08.png) ### Configuration: - Choose whether to fetch details for only the latest attachment or for all attachments associated with the triggering record. ![](https://media.help.cloudfiles.io/ds-automations-hs/09.png) ### Output: This action returns multiple values that can be used in later steps of your workflow, including: - Action Status — success or failure. - Attachment ID — internal ID for the attachment. - URL Slug — the slug of the generated CloudFiles URL. - URL — the complete CloudFiles link. - Cloud Storage URL — the link to the file/folder in cloud storage. - Resource ID — internal ID of the file, folder, or dataroom associated with the attachment. - Name — name of the associated resource (with extension for files). - Type — whether the resource is a file, folder, or dataroom. - Status — status of the attached resource. ### Example: A sales operations team wants to automate a follow-up email that includes a link to an important document already attached to a deal. When a deal enters the “Negotiation” stage, the workflow uses this action to fetch details of the latest attachment on the deal record. The returned URL is then used to generate a personalised email with the correct document link, ensuring that prospects always receive the most relevant attachment. To learn more about this action, read the full article on Get Attachment Details Action ## Get Resource Property Action This action is used to retrieve the external URL and various metadata for a specific file or folder stored in your connected cloud storage (e.g., Google Drive, SharePoint, OneDrive, Box, Dropbox) directly from a HubSpot workflow. ![](https://media.help.cloudfiles.io/ds-automations-hs/10.png) ### Configuration: ![](https://media.help.cloudfiles.io/ds-automations-hs/11.png) - Specify the Library where the file or folder is stored (e.g., SharePoint, Google Drive, Dropbox). - Provide the Path to Resource -> the full slash-separated path to the file or folder in the cloud storage. - Choose the Property to Get -> the name of the resource attribute you want to retrieve (e.g., externalUrl, name, size, date). ### Output: The action returns multiple values, including: - Action Status — success or failure. - Value — the property retrieved in the format requested (string, number, Boolean, date/time). ### Example: A sales operations team wants to include a publicly shareable link to an important contract stored in Google Drive in a deal record. In a workflow triggered when a deal reaches “Contract Sent,” the Get Resource Property action pulls the externalUrl of the contract file. The returned URL is then written into a deal custom property and used in automated follow-up emails so that customers always receive the correct link without manual lookups. To learn more about this action, read the full article on Get Resource Property Action ## Move HubSpot Files Action This action is used to move files uploaded to HubSpot (for example, via forms or record attachments) into a connected cloud storage system such as Google Drive, SharePoint, OneDrive, Box, or Dropbox. It helps you automatically organise HubSpot files into structured folders outside HubSpot. ![](https://media.help.cloudfiles.io/ds-automations-hs/12.png) ### Configuration: ![](https://media.help.cloudfiles.io/ds-automations-hs/13.png) - Select the HubSpot file property that contains the file link(s) you want to move (commonly a form upload property). - Choose the destination storage library where the files should be moved. - Provide the destination folder path in the selected storage, using a slash-separated format. Optionally provide a file name to rename the file during the move. If left empty, the original file name is retained. ### Output: The action returns a status message indicating success or failure, along with the final file name and the full path where the file was moved. ### Example: A marketing team collects documents through a HubSpot form. When a form submission is received, a workflow automatically moves the uploaded file from HubSpot into a deal-specific folder in SharePoint. The file is renamed using the record name (for example, “Nimbus Corp – NDA.pdf”), ensuring all submitted documents are stored in the correct location without manual downloads or uploads. To learn more about this action, read the full article on Move HubSpot Files Action ## Share Attachment Action This action is used to generate a secure, shareable CloudFiles link for an attachment (file, folder, or dataroom) associated with or linked to a HubSpot record. It allows you to programmatically share attachments through workflows without manually creating links. ![](https://media.help.cloudfiles.io/ds-automations-hs/14.png) ### Configuration: ![](https://media.help.cloudfiles.io/ds-automations-hs/15.png) - Provide the Attachment ID of the file, folder, or dataroom you want to share. - This ID is typically obtained from a previous action, such as Create Attachment Action or Get Attachment Details Action . ### Output: The action returns a status message along with a CloudFiles share link, including both the full URL or the URL slug. These values can be used in subsequent workflow actions or communications. ### Example: A support team attaches a troubleshooting guide to a HubSpot ticket via the App Card or the sidebar widget. When the ticket owner updates the ticket status to “Waiting on Customer,” a workflow automatically generates a CloudFiles share link for the attachment and sends it to the customer. This ensures the customer always receives the correct support document without agents manually creating links. To learn more about this action, read the full article on Share Attachment Action. ## Update Link Settings Action This action is used to update the access and security settings of existing CloudFiles share links (for files, folders, or datarooms) through a HubSpot workflow. It allows you to automatically control who can view a link, how long it remains active, and what actions viewers are allowed to take. ![](https://media.help.cloudfiles.io/ds-automations-hs/16.png) ### Configuration: ![](https://media.help.cloudfiles.io/ds-automations-hs/17.png) Choose whether the settings should be applied to the latest shared link or to all links associated with the record. Enable or disable download and print access for the shared resource. Set an expiry condition based on a specific date or a maximum number of views. Optionally require viewers to enter and verify their email address before accessing the link. Optionally restrict access by allowing only specific email addresses or domains. ### Output: The action returns a status message indicating whether the link settings were updated successfully. ### Example: A customer success team shares onboarding documents with new customers using CloudFiles links. When a "welcome email is sent" from HubSpot, a workflow automatically updates the link settings to require email verification and limit the link to 10 views. This ensures only the intended recipient can access the documents and prevents links from being reused or forwarded. To learn more about this action, read the full article on Update Link Settings Action ## Update Resource Permissions Action This action is used to update who can access a file or folder stored in your connected cloud storage directly from a HubSpot workflow. It allows you to automatically grant or remove access for specific users and control whether they can view or edit the resource. ![](https://media.help.cloudfiles.io/ds-automations-hs/18.png) ### Configuration: ![](https://media.help.cloudfiles.io/ds-automations-hs/19.png) - Select the storage library where the file or folder is located. - Provide the full path to the file or folder whose permissions you want to update. - Choose whether you want to grant access or revoke access. - If granting access, select the permission level (view or edit). - Enter one or more email addresses whose access should be updated. Tokens and record-based emails can be used. ### Output: The action returns a status message indicating whether the permissions were updated successfully. ### Example: A customer success team maintains a shared onboarding folder in SharePoint for each customer. When a new stakeholder email is added to the account record, a workflow automatically grants view access to the folder for the new contact. At the same time, access for removed stakeholders can be revoked, ensuring that only the right people have access to customer documents at all times. To learn more about this action, read the full article on Update Resource Permissions Action . --- ## HubSpot: Document Generation --- # Document Generation (Document Generation · HubSpot) https://help.cloudfiles.io/hubspot/document-generation # Document Generation CloudFiles Document Generation integrates with HubSpot to help you create, customize and automate creation of documents using HubSpot CRM data. With support for Microsoft Word, Excel and PowerPoint, you can generate documents directly from HubSpot record pages or automate through HubSpot workflows. > Kind: Guide · Updated: Jul 8, 2026 ## Introduction CloudFiles Document Generation integrates with HubSpot to help you create, customize and automate creation of documents using HubSpot CRM data. With support for Microsoft Word, Excel and PowerPoint, you can generate documents directly from HubSpot record pages or automate through HubSpot workflows. This guide provides a complete overview of setting up CloudFiles Document Generation in HubSpot and understanding the key features available to streamline your document generation workflows. Get started with these two key sections: - Setup and ConfigurationThis section walks you through setting up CloudFiles Document Generation in HubSpot. It covers connecting your CloudFiles account, adding the Document Generation widget to HubSpot record pages, installing and configuring the Microsoft Office Add-in, managing licenses and completing the setup wizard to ensure everything is ready for use. - FeaturesThis section highlights the core features of CloudFiles Document Generation in HubSpot, including template-based document creation, dynamic data merge from HubSpot records, Documents generation and integrations with tools like DocuSign for eSignatures. --- # Setup and Configuration https://help.cloudfiles.io/hubspot/setup-and-configuration # Setup and Configuration The Setup and Configuration section guides you through setting up CloudFiles Document Generation in your HubSpot, enabling automated creation of your documents. CloudFiles add-in supports Microsoft Word, Excel and PowerPoint, allowing you to create templates directly within these applications and generate output as PDF or in the original template file format, depending on where the template was created. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Setup and Configuration section guides you through setting up CloudFiles Document Generation in your HubSpot, enabling automated creation of your documents. CloudFiles add-in supports Microsoft Word, Excel and PowerPoint, allowing you to create templates directly within these applications and supports template-based document generation in.pdf and in their original template file formats-.docx,.pptx or.xlsx-depending on where the template is created. This section is divided into six key sub-sections - - Document Generation Setup Wizard: In this article, we cover how the Document Generation setup wizard guides you through the initial configuration process, including connecting the CloudFiles Office add-in, preparing templates, enabling document generation on HubSpot records and validating document generation. - Adding Widget to Record Page: In this article, we cover how to add CloudFiles Document Generation widget in HubSpot record pages. It allows users to select templates directly from HubSpot records and generate documents. - CloudFiles Office Add-In setup: In this article, we cover how to install the CloudFiles Word Add-in and connect it to your CloudFiles account to begin designing HubSpot-enabled document templates - Account Setup: In this article, we cover the Document Generation account in CloudFiles, including managing published templates, reviewing template details and version history and setting up integrations such as DocuSign for e-signature funtionality. - License Management: In this article, we cover how administrators can manage user access for CloudFiles products by assigning roles, inviting users, tracking license usage and controlling the total number of licenses available for each product. - Usage Dashboard: In this article, we cover the Document Generation Usage Dashboard to monitor how documents are generated across templates and HubSpot users. This helps teams track adoption, understand usage patterns and ensure that document generation stays within expected limits. --- # Document Generation Setup Wizard https://help.cloudfiles.io/hubspot/document-generation-setup-wizard # Document Generation Setup Wizard The Document Generation Setup Wizard helps you configure CloudFiles to generate documents directly from HubSpot CRM data. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Document Generation Setup Wizard helps you configure CloudFiles to generate documents directly from HubSpot CRM data. It walks you through connecting the CloudFiles Office add-in, preparing document templates, enabling document generation on HubSpot records and generating documents from published templates. The wizard is designed to be completed in sequence, ensuring all required components are correctly configured. However, individual steps can be revisited at any time if changes are needed. ## Accessing the Setup Wizard The setup wizard can be accessed from the Document Generation section within the CloudFiles app using the left-hand sidebar. A progress indicator displayed alongside the wizard shows completed and pending steps, allowing you to easily track setup status and resume configuration where needed. ![](https://media.help.cloudfiles.io/dg-setup-wizard-hs/01.png) ## Setup Wizard Overview The Document Generation setup wizard consists of 4 steps, each addressing a setup detail for enabling document generation within HubSpot. ### Step 1: Install and Connect the CloudFiles Add-in This step ensures the CloudFiles Office Add-In setup is completed and connected to your CloudFiles account. The add-in is required to create and manage document templates in Word, Excel or PowerPoint using HubSpot CRM data. Once connected, you can create and access templates and make them available for document generation inside HubSpot. ### Step 2: Create and Publish a Template In this step, you create document templates that define the structure and content of generated documents. Templates can include dynamic fields, images, conditional logic and data pulled from HubSpot records. We covered in detail on creating and publishing templates in section- Design Studio After you complete the template setup and save it, the template is published to CloudFiles and can be used for document generation. ### Step 3: Add the Document Generation Widget to HubSpot Records This step enables the Document Generation widget on HubSpot record pages. The widget allows users to access published templates directly from Supported HubSpot Objects such as Contacts, Companies, Deals etc. Once added, document generation widget becomes part of your HubSpot record experience. ### Step 4: Generate a Document The final step verifies that Generating Documents is working as expected. Users can select a published template from the widget and generate documents using live HubSpot record data. Generated documents are immediately available for download. ## Completion and Progress Tracking Each completed step is visually marked in the setup wizard and the progress indicator updates accordingly. You can complete the setup in one session or return later to finish or review individual steps. In the upcoming articles, we’ll cover the CloudFiles Document Generation setup in detail, with step-by-step guidance for completing each stage of the setup wizard --- # Adding Widget to Record Page https://help.cloudfiles.io/hubspot/adding-widget-to-record-page # Adding Widget to Record Page CloudFiles Document Generation is used to generate PDFs and original file format (DOCX/PPTX/XLSX) documents using HubSpot data, and integrates directly within HubSpot record pages. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles Document Generation is used to generate PDFs and in original file formats-DOCX/PPTX/XLSX documents using HubSpot data. It integrates directly within HubSpot record pages, displaying all published templates related to a specific object. Users can select a template, generate and download the document. This functionality relies on the CloudFiles Word Add-in, which is used to design and manage document templates with HubSpot fields and must be connected to your HubSpot instance for full functionality. This article explains the following - - Configuring the Widget: You’ll learn how to add the CloudFiles Document generation widget to your HubSpot records - Working with Templates. You’ll discover how to generate documents from displayed templates within the widget ## Configuring the Widget The CloudFiles Document Generation widget can be easily added to any of standard object's record page in HubSpot. Once added, this widget will display all the published templates related to that object. Users can then generate documents which will be automatically downloaded upon generation. - Navigate to any HubSpot record and click on "Customize view" located in the top-right corner. - From the menu, select "Default view". - Click the "+" button to create a new tab or add the widget to the existing tab. - Assign a name to the tab if any. For example, you can name it "CloudFiles Doc Gen" for easy identification. - Click on the "+" button again to open the Card Library and select CloudFiles Document Generation. - Next, click on "Add Card" to add the widget to the existing/ new tab. For visual understanding, refer to the video below - [Watch video](https://youtu.be/vU2uvQn5VKY) ## Working with Templates Once the CloudFiles Document Generation widget is added to a HubSpot record page, users can begin generating documents directly from the list of published templates. The widget automatically identifies the object type of the record (Contact, Company, Deal, Ticket, etc) and displays only the templates mapped to that object. Each template entry displays: - Template Name - Download Options (PDF and Template's file formats- DOCX/.XLSX/.PPTX) ![](https://media.help.cloudfiles.io/dg-adding-widget-hs/01.png) In next article, You'll learn about CloudFiles Office Add-In setup, which is required to create and manage document templates. --- # CloudFiles Office Add-In setup https://help.cloudfiles.io/hubspot/cloudfiles-office-add-in-setup # CloudFiles Office Add-In setup The CloudFiles Office add-in integrates CloudFiles with HubSpot, letting users create and design templates incorporating HubSpot CRM data directly from Microsoft Word, Excel, or PowerPoint. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The CloudFiles Office add-in facilitates the integration of CloudFiles with your HubSpot instance, enabling you to create and design templates that incorporate HubSpot CRM data. This powerful tool streamlines the process of merging HubSpot data into documents, making it easier to generate consistent and accurate templates directly from Microsoft Word, Microsoft PowerPoint, Microsoft Excel. Once installed, your users can build dynamic templates, insert HubSpot fields and publish templates directly to CloudFiles for document generation in HubSpot. > A valid Microsoft account is necessary to complete the installation successfully and access the CloudFiles add-in. ## Installing the CloudFiles Word Add-in To add CloudFiles Word add-in to your Microsoft Word account, start by launching Microsoft Word, Excel or PowerPoint on your PC or in web browser. Then follow the steps below: - Navigate to the "Home" tab and click on "Add-ins" to explore available options. - In the Add-ins window, select "+ More Add-ins" to open the "Office Add-ins" window, then click on "Microsoft AppSource" to be redirected to appsource.microsoft.com. - In the search bar, type "CloudFiles" and browse the results to locate the CloudFiles Add-in. - Click "Get it now" to install the add-in. Once the installation is complete, open Word to check the new add-in. - In the "New Office Add-in" sidebar, click "Allow and Continue" to launch the CloudFiles Word add-in, ensuring it's ready for use with your HubSpot data. Refer to the video below to have a visual understanding of these steps - [Watch video](https://youtu.be/0Kzyf8FzEhI) > Since the CloudFiles add-in is linked to your Microsoft account, once installed in one application (Word, Excel or PowerPoint), it will automatically be available in the other two. ## Connecting Your CloudFiles Account to the Word Add-in After installing the CloudFiles Word add-in, the next step is to connect your CloudFiles account. This connection allows the Office add-in to access your HubSpot data, pull in mapped properties and publish templates directly from Microsoft Word. Follow the steps below to complete the setup: - Open Microsoft Word and navigate to the Add-ins section.Launch the CloudFiles add-in from the available options to begin the authentication process. - Choose HubSpot as the data source - On the signin page, enter your CloudFiles Login credentials or sign in using your Google or Microsoft account and follow the on-screen instructions to complete authentication. - Once successfully signed in, you can start designing document templates directly in Word, Excel or PowerPoint, embedding HubSpot fields for dynamic data merge. ![](https://media.help.cloudfiles.io/dg-office-addin-setup-hs/01.gif) > **Note** — When signing in using email and password, use your CloudFiles login credentials. Do not use your HubSpot credentials. --- # Account Setup (HubSpot: Document Generation) https://help.cloudfiles.io/hubspot/siAS-account-setup # Account Setup The Document Generation Account Setup section in CloudFiles provides a centralized view for managing document templates, configuring integrations, and tracking usage. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Document Generation Account Setup section in CloudFiles provides a centralized view for managing document templates, configuring integrations and Usage . From this area, admins can review published templates, track template versions, Usage analytics and connect to DocuSign to enable e-signature functonality. ## Account Setup The Document Generation section within the CloudFiles app includes three tabs: - Templates - Integrations - Usage ### Managing Templates The Templates tab provides an overview of all document templates published in CloudFiles.For each template, you can view key details such as the HubSpot object template is associated with, the user who created the template, the date it was created, and its current version information. This overview makes it easy to understand how templates are being used across different HubSpot records. ### Template Actions Using the three-dot menu next to a template, users can: - View version history - Download the template - Delete template ![](https://media.help.cloudfiles.io/dg-account-setup-hs/01.png) ### Version History The Version History view provides a detailed record of all versions published for a template. Each version can be individually downloaded, allowing teams to review or restore earlier versions when needed. ![](https://media.help.cloudfiles.io/dg-account-setup-hs/02.png) ## Integrations The Integrations tab allows you to configure and manage DocuSign integration for document generation. CloudFiles supports integration with DocuSign to enable e-signature functionality within document generation workflows. Once a DocuSign account is connected, it is used for all document signing operations initiated through CloudFiles. The Integrations tab displays: - DocuSign connection status - Connected DocuSign user details ![](https://media.help.cloudfiles.io/dg-account-setup-hs/03.png) In section- eSignature Integration, we covered about how to setup Docusign account and e-sign field integrations. ## Usage The Usage tab provides analytics to help you monitor how CloudFiles Document Generation product is being used across your account. It gives visibility into document generation activity, template usage and overall user consumption. You can view usage data across multiple predefined time periods and these flexible time filters allow you to analyze trends and patterns over time, making it easier to track growth, identify high-usage templates or users and review activity during specific periods. ![](https://media.help.cloudfiles.io/dg-account-setup-hs/04.png) --- # License Management (HubSpot: Document Generation) https://help.cloudfiles.io/hubspot/xTAp-license-management # License Management The License Management section in CloudFiles allows administrators to control user access to CloudFiles products. > Kind: Guide · Updated: Jun 4, 2026 The License Management section in CloudFiles allows admins to control access to the Document Generation product. From this page, admins can view active users, assign roles, invite new users, and manage the total number of licenses available for the product. Each CloudFiles product — Document Management, Document Generation, and Document Sharing — has its own license configuration, which can be managed independently. CloudFiles also supports Partner Seats, allowing organizations to invite external implementation partners or HubSpot agencies to help configure and manage their CloudFiles account. Partner seats do not consume the organization's purchased licenses and are available when enabled for the account. ## Accessing License Management License Management can be accessed from Settings in CloudFiles by selecting License Management from the left-hand menu. The License Management screen provides a consolidated view of all users associated with the Document Generation product. At the top of the page, product tabs allow you to switch between Document Management, Document Generation, and Document Sharing. Any changes made apply only to the selected product. ![](https://media.help.cloudfiles.io/dg-license-mgmt-hs/01.png) Below the tabs, the Document Generation Licenses section displays the current license status, including the number of licenses available and the list of users assigned to this product. ### User List and License Details The user table shows all users who have access to Document Generation. For each user, the following information is displayed: - Name and Email ID of the user. - License Status indicates whether the license is active or inactive. - Role defines the user's level of access. CloudFiles supports three roles: - Admin – Can manage licenses, invite users, and configure the account. - User – Can access the products assigned to them. - Partner – Intended for external implementation partners or agencies. Partner users can access only the CloudFiles products licensed by the account and do not consume paid user licenses. > **Note** — Partner Seats are currently available by request. If you’d like to enable Partner Seats for your CloudFiles account, please contact the CloudFiles Support team. ### Inviting a User Clicking "Invite User" opens a dialogue that allows admins to invite new users to CloudFiles. In the New Invites view, the admin enters the user's email address and selects a role, either User or Admin. Once the invitation is sent, the user receives an email invitation to join CloudFiles. If a license is available, an active license is automatically assigned after the invitation is accepted. ![](https://media.help.cloudfiles.io/dg-license-mgmt-hs/02.png) The Pending Invitations view shows users who have been invited but have not yet accepted their invitation, helping admins keep track of outstanding invites. ### Inviting a Partner If Partner Seats are enabled for your CloudFiles account, admins can invite external implementation partners or agencies using the Invite Partner option. Partner users are intended for external collaborators who help configure or manage the CloudFiles account on behalf of the organization. Unlike regular users, Partner users do not consume the account's purchased licenses. When inviting a Partner: - Only external email addresses can be invited. - A Partner Seat must be available. ![](https://media.help.cloudfiles.io/dg-license-mgmt-hs/03.png) ### Updating Roles and License Status Admins can directly update a user's role and license status from the License Management table. Each user entry includes editable fields that allow quick adjustments without leaving the page. Using the edit (pencil) icon, admins can change a user's role between Admin and User, depending on the required level of access. ![](https://media.help.cloudfiles.io/dg-license-mgmt-hs/04.png) Similarly, the license status can be toggled between Active and Inactive, giving admins control over whether a user currently has access to the Document Generation product. ![](https://media.help.cloudfiles.io/dg-license-mgmt-hs/05.png) ### Managing Licenses The Manage Licenses option allows admins to control the total number of Document Generation licenses available. When selected, a modal opens where the admin can increase or decrease the number of licenses using the plus/minus controls. The modal also displays the current number of licenses in use and the updated total after changes are applied. ![](https://media.help.cloudfiles.io/dg-license-mgmt-hs/06.png) Selecting "Confirm Changes" updates the license count, making new licenses immediately available for assignment. License Management in CloudFiles provides admins with full visibility and control over access to the Document Generation product. By managing users, roles, invitations, and license counts from a single screen, teams can ensure secure access to documents while scaling usage as needed. > **Note** — Partner Seats are managed separately from standard product licenses. They do not count toward your purchased license total and are excluded from billing calculations. ### Deleting a User Admins can permanently remove user from the CloudFiles account directly from the License Management screen. ![](https://media.help.cloudfiles.io/dg-license-mgmt-hs/07.png) This action cannot be undone. When a user is deleted, they are completely removed from the CloudFiles account and will no longer have access to any CloudFiles products. Any files, folder, Datarooms, shared link or other resources owned by the user are automatically reassigned to the admin initiating the delete action. This ensures that existing resources remain accessible and no data is lost after the user is removed. --- # Usage Dashboard https://help.cloudfiles.io/hubspot/usage-dashboard # Usage Dashboard The Document Generation usage view helps you monitor how many documents generated using CloudFiles document generation and automations credits consumed over time. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Document Generation usage view helps you monitor how many documents generated using CloudFiles document generation and automations credits consumed over time. It provides visibility into usage in current billing period, historical trends and how usage is distributed across templates and HubSpot users. ## Accessing Document Generation Usage To access the Document Management usage view: - Open the CloudFiles app for HubSpot. - Select Document Generation tab in the top navigation bar. - From the left sidebar, click Usage. ![](https://media.help.cloudfiles.io/dg-usage-dashboard-hs/01.png) ## Sections Available in the Usage View The usage view is divided into multiple sections that provide an overview of usage in current billing period, historical usage trends and a detailed breakdown of how many documents are generated by template and HubSpot users. Each section focuses on a specific aspect of document Generation usage. ### Usage Summary Card The Usage Summary Card displays a snapshot of usage for the current billing cycle. It shows the billing cycle start and end dates, the total number of credits consumed so far, the remaining credits available, and the number of days left before the billing cycle resets. This section helps you quickly assess whether current usage is within expected limits. ![](https://media.help.cloudfiles.io/dg-usage-dashboard-hs/02.png) ### Purchasing Additional Credits If your usage exceeds the included limits in your current plan, you can purchase additional credit packs as an add-on. Document Generation Pack | Plan | Price/ month | Documents/ month | |---|---|---| | Small Pack | $10 | 100 | | Medium Pack | $75 | 1,000 | | Large Pack | $500 | 10,000 | These add-ons allow you to continue generatedocuments without interruption, even during periods of higher usage. Additional limits are applied to your account immediately and are consumed in the same way as your existing plan limits. ### Historical Usage Analysis The Historical Usage Analysis section visualises how document management usage changes over time. ![](https://media.help.cloudfiles.io/dg-usage-dashboard-hs/03.png) Usage can be viewed across predefined time ranges, such as Today, This week, This Year or Last 180 Days. A Custom Date Range selector is available for more precise analysis. Usage data can be displayed using Bar or Line graphs to identify trends, spikes, and periods of low activity. ![](https://media.help.cloudfiles.io/dg-usage-dashboard-hs/04.png) ### Breakdown by Document Templates The Breakdown by Document Template section shows how usage is distributed across individual document templates used in document generation. It displays the total number of documents generated using each template. This helps identify which templates are most frequently used in document generations ![](https://media.help.cloudfiles.io/dg-usage-dashboard-hs/05.png) ### Linked Records by HubSpot User This section groups usage data by HubSpot users. It shows which users are most frequently triggering document generation actions, either manually or through workflows. This helps you understand how document generation is being used across your team and identify which users or teams contribute most to overall usage ![](https://media.help.cloudfiles.io/dg-usage-dashboard-hs/06.png) --- # Features (Document Generation · HubSpot) https://help.cloudfiles.io/hubspot/194e-features # Features CloudFiles Document Generation provides a complete set of capabilities to design, populate, generate from HubSpot CRM data. The Features section of the documentation walks through each stage of the document lifecycle, from template creation to data handling, generation and eSignature. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles Document Generation provides a complete set of capabilities to design, populate, generate from HubSpot CRM data. The Features section of the documentation walks through each stage of the document lifecycle, from template creation to data handling, generation and eSignature. This section is organized into five key subsections, each covering a core part of the CloudFiles workflow. - Design Studio: In this section we focus on building and managing document templates using the CloudFiles Office Add-in. It explains how to create templates in Word, Excel and PowerPoint, insert dynamic fields and content, preview templates with live HubSpot data, and apply formatting to control how data appears in generated documents. - Data Orchestration: This section explains how data flows into templates from HubSpot. It covers how CloudFiles accesses HubSpot records, which objects and fields are supported, how resources are created to fetch related or repeatable data and how template actions apply this data to generate structured documents. - Template Control Center: This section provides a centralized view to manage and monitor all document templates created using CloudFiles Document Generation - Generating Documents: This section covers how published templates are used to create documents from HubSpot records. It explains manual document generation using the Doc-Generation widget and outlines upcoming support for automated document generation through HubSpot workflows - eSignature Integration: This section explains how CloudFiles integrates with DocuSign to enable end-to-end document signing. It covers setting up the DocuSign integration, defining recipients, placing signature and input fields in templates, and routing generated documents for signing directly from HubSpot. --- # Design Studio https://help.cloudfiles.io/hubspot/design-studio # Design Studio CloudFiles provides a set of interfaces that let you design and manage document templates using data from HubSpot. These interfaces are available through the CloudFiles Office Add-in, allowing templates to be created directly inside Microsoft Word, Excel and PowerPoint without requiring any coding or external tools. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles provides a set of interfaces that let you design and manage document templates using data from HubSpot. These interfaces are available through the CloudFiles Office Add-in, allowing templates to be created directly inside Microsoft Word, Excel and PowerPoint without requiring any coding or external tools. The Design Studio section of the documentation groups together articles that explain how these interfaces work and how to use them effectively when building document generation templates. This section is organized into 3 key articles - Microsoft Office Add-In: In this article, we cover overview of the CloudFiles Office Add-in and explains how it works across Microsoft Word, Excel and PowerPoint. It introduces the add-in as the primary interface for creating, previewing and publishing templates that use HubSpot data. - How to build a template: In this article, we walk through the complete process of creating a DOCX template in Microsoft Word using CloudFiles. It covers inserting fields, images, tables, links and conditions, working with related records, previewing templates with live data and publishing templates for use inside HubSpot. - Formatting Options: In this article, we explain how to control how data appears in generated documents. It covers text, date and number formatting to fine-tune the layout and presentation of documents. --- # Microsoft Office Add-In https://help.cloudfiles.io/hubspot/microsoft-office-add-in # Microsoft Office Add-In The Design Studio in CloudFiles is powered by the Microsoft Office Add-in, which enables you to design and manage document templates using HubSpot data. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Design Studio in CloudFiles is powered by the Microsoft Office Add-in, which enables you to design and manage document templates using HubSpot data. This add-in allows users to build dynamic templates directly within Microsoft applications, without requiring any coding or external tools. CloudFiles supports the Office Add-in across three Microsoft applications: - Microsoft Word - Microsoft Excel - Microsoft PowerPoint > A valid Microsoft account is necessary to complete the installation successfully and access the CloudFiles add-in. ## How to Install the CloudFiles office Add-in To add CloudFiles Word add-in to your Microsoft Word account, start by launching Microsoft Word, Excel or PowerPoint on your PC or in web browser. Then follow the steps below: - Navigate to the "Home" tab and click on "Add-ins" to explore available options. - In the Add-ins window, select "+ More Add-ins" to open the "Office Add-ins" window, then click on "Microsoft AppSource" to be redirected to appsource.microsoft.com. - In the search bar, type "CloudFiles" and browse the results to locate the CloudFiles Add-in. - Click "Get it now" to install the add-in. Once the installation is complete, open Word to check the new add-in. - In the "New Office Add-in" sidebar, click "Allow and Continue" to launch the CloudFiles Word add-in, ensuring it's ready for use with your HubSpot data. Refer to the video below to have a visual understanding of these steps - [Watch video](https://youtu.be/0Kzyf8FzEhI) > Since the CloudFiles add-in is linked to your Microsoft account, once installed in one application (Word, Excel or PowerPoint), it will automatically be available in the other two. ## What You Can Do with the Office Add-in Using the CloudFiles Office Add-in, users can: - Create document templates using HubSpot data - Insert HubSpot properties as dynamic fields - Add images, tables, links and conditional content - Work with associated records - Preview templates using live HubSpot data - Publish templates directly to CloudFiles for use on HubSpot record pages The CloudFiles add-in acts as the central design interface for all document generation templates used within HubSpot. --- # How to build a template https://help.cloudfiles.io/hubspot/how-to-build-a-template # How to build a template This guide explains how to create a template using CloudFiles Document Generation, walking through building a purchase order template in Microsoft Word using HubSpot Deal data. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction This guide explains how to create a template using CloudFiles Document Generation. The CloudFiles Office add-in allows you to build templates using HubSpot data. For this tutorial, we will use the Deal object to create a sample purchase order template in Microsoft Word. You will learn how to use the Insert Field, Insert Image, Insert Table, and Insert Condition actions to generate documents with data from HubSpot records. ## What to Expect By the end of this tutorial, you will know how to: - Create a DOCX template with fields mapped from HubSpot - Insert text, image and table elements into a DOCX template - Use conditions to show or hide content based on logic - Preview and publishing document template to HubSpot ## Tutorial Video The video below illustrates the process of creating a template using CloudFiles Document Generation product. [Watch video](https://www.youtube.com/embed/p49YtbzXTEI) ## Pre-requisites ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/01.png) ### Template Builder Setup The CloudFiles add-in connects with your HubSpot Org to enable template creation using HubSpot data. It can be installed in Microsoft Word, Excel or PowerPoint, allowing you to design templates directly. For installation steps, see CloudFiles Office Add-In setup ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/02.png) ## Stages of Document Generation Document Generation includes 3 main stages: - Build - Preview - Publish After logging in to HubSpot through the CloudFiles add-in, set HubSpot as the platform and select the a object from the Record type dropdown. In this tutorial, we will use the Deal object to create a sample Purchase Order template. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/03.png) ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/04.png) > Why use a Purchase Order Template?A purchase order is a common document used to confirm and track product or service purchases. It generally includes the Deal details, account information, shipping details and a list of items.In this tutorial, we use the Deals object in HubSpot, which contains all the required details for generating the document. For item-level information, we will use the Line Items object, which holds product names, quantities, prices, and totals used to populate tables in the template. We have created a sample purchase order template with placeholder fields for reference (see screenshot below). In the Build stage, we will show how to use each action: Insert Field, Insert Image, Insert Table, Insert Link and Insert Condition, to place the placeholders for actual data from HubSpot record properties. After installing the CloudFiles add-in and setting up for HubSpot, you can use the template actions to insert fields and tables from HubSpot data into the document. ### Stage 1 - Build ### 1 - Global variable When building templates, you work with global variables that help you pull in HubSpot data. The most common one is $Record, which refers to the record you’re generating the document for — for example, a Deal in this case. Using this, you can easily bring in fields for Dealname, EffectiveDate and related account fields. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/06.png) ### 2 - Insert Field Use Insert Field action to add following fields into the purchase order template. Place the cursor where the placeholder field should appear in the document, then select the Insert Field action. Add below placeholders in the purchase order template: - EffectiveDate – {!$Record.closedate} - DealName – {{!$Record.dealname}} - AccName – {{!associated_company.name}} - BillingStreet – {{!associated_company.address}} You can similarly insert other fields such as ShippingCity,region, website etc. > **Note** — To fetch associated records data, like Company Name, Shipping address in this case, you must define a Record Single Variable to insert placeholders for those associated records. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/07.png) CloudFiles supports formatting for generated data such as text, dates, numbers- learn more in Formatting Options ### 3 - Insert Picture Use Insert Picture action to add an image to the template. This is ideally used for company logos, product images, etc. Place the cursor where the image should appear in the document, then select the Insert Picture action. Choose a field that contains a valid image URL, such as a logo URL stored in the Account record. You can also adjust the size of the image. In the purchase order template, insert the field hs_logo_url from the associated company object, which holds the image URL. - Image - {!associated_company.hs_logo_url} ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/08.png) ### 4 - Insert Link Use Insert Link to add clickable URLs from HubSpot fields into your template. In the purchase order template, insert the field Website from the Company object, which holds the URL of the website. - Website – {!associated_company.website} This will generate a working hyperlink in the final generated document. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/09.png) ### 5 - Insert Table Use Insert Table action to include repeatable rows for lists, such as line items or products. Before adding a table, create a Record Collection Variable with object set to 'Line items' which is typically used to represent the line items associated with the Deals (e.g., products purchased, quantities, and pricing) ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/10.png) Now, the record collection Line Items contains the products of the Deal. To configure the table, follow the steps below: - Place the cursor on the template and select the Insert table action. - In the Resource Type field, select the collection Line Items you created. - Specify the required number of columns and rows. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/11.png) - Add column labels for Item, Quantity, Unit Price, and Subtotal in the first row. - Place the cursor on the second row and use the , then click ‘Make Data Row’ to include the values of the collection. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/12.png) - Insert the following into the table from the collection Line Items using the Insert Field action. - Product Name - {!Line_items.Name} - Quantity - {!Line_items.quantity} - Unit Price - {!Line_items.price} - Total Price - {!Line_items.amount} You can insert multiple fields into the same cell. Make sure you insert all the collection fields inside the data row. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/13.png) ### 6 - Insert Condition Use to show or hide sections based on values from your record. In the purchase order template, let's display a message only when the Total Order Amount exceeds $10,000 Steps to Insert a Condition: - Place the cursor where you want the conditional content to appear. - Open the CloudFiles Add-in and choose Insert Condition. - In the Field dropdown, select the relevant field (e.g., TotalAmount or Order Total). - Set the Operator (e.g., Greater Than) and enter the Value (e.g., 10000). - Click Insert - Add the message inside to display if the condition is met. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/14.png) ### 7 - Document Title If no Document Title is specified, the document will default to the name of the template. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/15.png) Global constants Global constants are predefined values that remain the same for every document. By default, the template includes: - $GlobalConstant.EmptyString – blank text value - $GlobalConstant.False – boolean false - $GlobalConstant.True – boolean true These constants can be used to add fixed values or control logic. ### Stage 2 - Preview The Preview feature allows you to test how your document will look using real data before publishing it. How It Works: - Enter a valid Record ID (e.g., a HubSpot Deal ID) into the input box. - Click Generate Preview. - CloudFiles will populate the template with actual values from the record, showing you exactly how the final document will appear. > **Errors at Preview** — In the Preview section, if the template has any issues, you may encounter errors, such as 'Preview generation failed,' along with a description of the error.These errors typically indicate problems like malformed queries, etc. Make sure to review the error message and correct the issue accordingly before publishing. ### Stage 3 - Publish Once you’ve finished building and previewing your template, use the Publish step to save it for use in your HubSpot instance. Publishing Options: 1 - Publish as a New Template - Choose this if you're creating a template from scratch. - Enter a unique Template Name in the input field. - This will create a new version that will be available for use. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/17.png) 2 - Select an Existing Template - Choose this option to update or replace a previously published template. - Select from the list of available templates in the dropdown. - Your current design will overwrite the selected template with the new version. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/18.png) Once published, the template will be listed in CloudFiles web app under the Document Generation tab → Templates. ![](https://media.help.cloudfiles.io/dg-how-to-build-template-hs/19.png) --- # Formatting Options https://help.cloudfiles.io/hubspot/formatting-options # Formatting Options Formatting controls in CloudFiles Document Generation let you control how dynamic data appears in your generated documents, including text, date, and number formatting. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Formatting controls in CloudFiles Document Generation let you control how dynamic data appears in your generated documents.These controls help you format text, dates, numbers, currency and also allow you to apply native Microsoft styling for complete design flexibility. ## Formatting Options: ### Text formatting You can choose to capitalize(first letter in uppercase), use lowercase or uppercase for the text. ![](https://media.help.cloudfiles.io/dg-formatting-options-hs/01.png) Font: All inserted fields can be formatted like regular text in Word, including changes to font, size, and style. ### Date Formatting You can format dates as Short (08/23/2024), Medium (Aug 23 2024), Long (August 23, 2024) or Full (Friday, August 23, 2024). ![](https://media.help.cloudfiles.io/dg-formatting-options-hs/02.png) ### Number Formatting For number fields (like int or double), you can apply custom formats: - # – shows digit only if present (e.g., ###,###.### → 1,234.56) - 0 – always shows digit, even if zero (e.g., 000,000.000 → 001,234.560) - , – thousands separator - . – decimal separator ![](https://media.help.cloudfiles.io/dg-formatting-options-hs/03.png) --- # Data Orchestration https://help.cloudfiles.io/hubspot/data-orchestration # Data Orchestration Data Orchestration section explains how data is accessed from HubSpot, organized within templates, and applied to generate dynamic documents. This section provides an end-to-end view of how HubSpot data flows through CloudFiles—from selection to structure to final output. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Data Orchestration section explains how data is accessed from HubSpot, organized within templates, and applied to generate dynamic documents. This section provides an end-to-end view of how HubSpot data flows through CloudFiles—from selection to structure to final output. This section is divided into 3 key sub-sections - - HubSpot Data Access focuses on what data CloudFiles can retrieve from HubSpot. It explains which standard and custom objects are supported, how Master Objects are selected, and which HubSpot field types can be used while building document templates. - Template-Resources explains how HubSpot data is prepared for use inside templates using Resources. It covers creating record-based and collection-based resources, defining Runtime Variables and e-signature recipients. - Template Actions covers how prepared data is applied within templates using actions available in Word, Excel, and PowerPoint. It explains how to insert fields, tables and dynamic content, enabling structured and accurate documents to be created. --- # HubSpot Data Access https://help.cloudfiles.io/hubspot/hubspot-data-access # HubSpot Data Access CloudFiles Document Generation integrates directly with HubSpot to securely access CRM data and populate Microsoft Office document templates. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles Document Generation integrates directly with HubSpot to securely access CRM data and populate Microsoft Office document templates. This section contains 2 articles and explains how CloudFiles works with HubSpot data and what types of records and fields are supported when building document templates. - Supported HubSpot Objects: This article explains the HubSpot data supported in CloudFiles Document Generation, including Master Objects, global variables such as $record and $user, and how related records can be accessed within templates. - Supported HubSpot Field Types: This article provides a detailed list of HubSpot field types that are supported in CloudFiles Document Generation --- # Supported HubSpot Objects https://help.cloudfiles.io/hubspot/supported-hubspot-objects # Supported HubSpot Objects CloudFiles Document Generation connects with HubSpot to fetch CRM data into Microsoft office templates using global variables $record and $user. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles Document Generation connects directly with HubSpot to fetch CRM data into your Microsoft office templates. This enables you to generate accurate, dynamic documents using real-time data from your HubSpot account. CloudFiles supports global variables- $record and $user, allowing you to dynamically insert information about the selected HubSpot record and the user generating the document. ## Record Variable To generate a document, you start by selecting a HubSpot object as the Master Object. This Master Object determines the context of the document and acts as the primary source of data for all placeholders used in the template. Once selected, this variable becomes the foundation for document generation and determines: - Which fields can be inserted into the template - Which related records can be accessed - How saved template is accessed and used during document generation ![](https://media.help.cloudfiles.io/dg-supported-objects-hs/01.png) ### Supported Standard Objects CloudFiles currently supports the following HubSpot objects as Master Objects: - Contacts - Companies - Deals - Tickets - Leads - Orders - Projects - Quotes - Products - Invoices - Commerce Payments - Line Items - Subscriptions ### Supported Custom Objects CloudFiles supports any custom object created in your HubSpot account. These custom objects can be selected as the master object when building document templates. ![](https://media.help.cloudfiles.io/dg-supported-objects-hs/02.png) Once a master object is selected, it automatically becomes available in the template as a global variable as $Record ![](https://media.help.cloudfiles.io/dg-supported-objects-hs/03.png) The $record global variable represents the chosen HubSpot resource and helps in inserting placeholders in the document Example use cases: - Deal name- $record.dealname - Amount- $record.amount - Effective date- $record.closedate ![](https://media.help.cloudfiles.io/dg-supported-objects-hs/04.png) ### Accessing Data from Related Records The Document generation builder automatically retrieves all fields (both standard and custom) from the selected Master Object. In addition to these, you may need data from other associated records or record collections. To support these requirements, CloudFiles allows you to create Resources. CloudFiles supports the following resource types for fetching related records Record Single Variable- A Record Single Variable represents a single record and holds all its field values. It is ideal for working with a specific data entry, such as a Contact, Company or Deal. The record can either be related to the main template object or be an independent record fetched using filter criteria. Record Collection Variable- A Record Collection Variable represents a group or list of records from a HubSpot object. It stores multiple records that meet defined criteria and is typically used when you need to work with repeating data entries, such as a list Items, Orders or Quotes within your document. ## User Variable CloudFiles provides a global variable- $user. The $user variable represents the HubSpot user who generated the document through the CloudFiles Document Generation widget. This allows you to dynamically insert information about the generating user directly into your templates. ![](https://media.help.cloudfiles.io/dg-supported-objects-hs/05.png) Example Use Cases - User Name → $user.hs_given_name - User Email → $user.hs_email - User Job Title → $user.jobtitle ![](https://media.help.cloudfiles.io/dg-supported-objects-hs/06.png) > **Please note:** — When documents are generated through HubSpot workflows, HubSpot does not provide the context of the user triggering/executing the workflow. In such cases, the $user variable will correspond to the HubSpot user whose account is connected to CloudFiles. ## Need Help Enabling on HubSpot Objects? If you need assistance enabling CloudFiles for specific HubSpot objects or custom objects—or if a record does not appear while designing templates, please reach out to: 📩 support@cloudfiles.io In the next article, we cover the list of supported HubSpot field types that can be used in CloudFiles Document Generation. --- # Supported HubSpot Field Types https://help.cloudfiles.io/hubspot/supported-hubspot-field-types # Supported HubSpot Field Types CloudFiles Document Generation supports a wide range of HubSpot field types, allowing you to insert CRM data into your Microsoft Office templates with ease. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles Document Generation supports a wide range of HubSpot field types, allowing you to insert CRM data into your Microsoft Office templates with ease. This article outlines the HubSpot field types that can be used as placeholders while building document templates. ## Text Input Fields The following text-based HubSpot fields are supported: - Single-line text - Multi-line text - Phone number - Date and time picker These fields are commonly used for names, descriptions, contact details and timestamped values. ## Option Selection Fields CloudFiles supports HubSpot fields that allow users to select one or more predefined values: - Single checkbox - Multiple checkboxes - Dropdown select These fields are typically used for statuses, categories, preferences, and configurable options. ## Value Fields The following value-based field types are supported: - Number Number fields are commonly used for quantities, scores, counts, and other numeric values. ## Formatting Supported Fields For supported fields, CloudFiles provides additional formatting controls that allow you to control how data appears in the generated document. Formatting options and examples can be found in article-Formatting Options --- # Template-Resources https://help.cloudfiles.io/hubspot/template-resources # Template-Resources The Builder automatically retrieves all fields (both standard and custom) from the selected Master Object. In addition to these, you may need data from other associated records, record collections or fields required to configure e-signature recipients. To support these requirements, CloudFiles allows you to create Resources. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Builder automatically retrieves all fields (both standard and custom) from the selected Master Object. In addition to these, you may need data from other associated records, record collections or fields required to configure e-signature recipients. To support these requirements, CloudFiles allows you to create Resources. ## How to create Resources You can create resources by clicking "Resources" hyperlink in the CloudFiles add-in and selecting + Create New Resource ![](https://media.help.cloudfiles.io/dg-template-resources-hs/01.png) ![](https://media.help.cloudfiles.io/dg-template-resources-hs/02.png) ## Configuring a Resource Depending on the resource type selected, you can configure: - Object type (e.g Deal, Company, Contact) - Filters to control which records are fetched - Limits to restrict the number of records returned (for collections) Once configured, these resources become available inside the document template and can be used just like standard fields during document generation. ## Supported CloudFiles Resources CloudFiles supports the following 3 resource types: - Record Single Variable- A Record Single Variable represents a single record and holds all its field values. It is ideal for working with a specific data entry, such as a Contact, Company or Deal. The record can either be related to the main template object or be an independent record fetched using filter criteria. - Record Collection Variable- A Record Collection Variable represents a group or list of records from a HubSpot object. It stores multiple records that meet defined criteria and is typically used when you need to work with repeating data entries, such as a list Items, Orders or Quotes within your document. - Runtime Variable- A Runtime Variable stores a predefined value used within a document template. It is not tied to HubSpot records and is ideal for reusable static data or controlling template logic. - Recipients- The Recipient resource allows you to define the individuals who will receive and sign generated documents via DocuSign. This resource holds information such as the recipient’s name and email address, which are critical for routing the document to the right person for e-signature. ## Combining Resources for Advanced Logic You can combine different types of resources to create more dynamic templates. For example,field values from a Record Single Variable can be used to filter a Record Collection Variable, allowing you to narrow down the collection based on a specific record’s attributes. --- # Record Single Variable (Guide · HubSpot) https://help.cloudfiles.io/hubspot/record-single-variable # Record Single Variable A Record Single Variable contains an entire record and all of the field values on that record. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction A Record Single Variable contains an entire record and all of the field values on that record. Creating a Record Single Variable is like retrieving an Object Record with conditions set on the fields. For example, to create a PO document, you may need to include billing details from the Company associated with the Deal or identify a specific Contact such as the primary decision-maker or signing authority based on certain criteria. In such scenarios, a Record Single Variable can be used to retrieve the relevant Company or Contact record and make its fields available for use within the document template. To create a Record Single Variable, follow the steps below - - Click 'Resources'; the Resource Manager opens up. - In the 'Create New Resource' pane, select Resource type from the drop-down as 'Record Single Variable'. - Enter a Label and the API Name will automatically populate. - Select the Object and association label ![](https://media.help.cloudfiles.io/dg-record-single-var-hs/01.png) ## Filters (Optional) To further determine which records are retrieved within an association label, you must define filter conditions. These conditions are used to compare values from the selected object and determine if a record meets the required logic to proceed. Begin by selecting the main operator that controls how multiple conditions will be evaluated: - AND: All conditions must be true - OR: At least one condition must be true - Custom: Allows for advanced expressions (e.g., (1 AND 2) OR 3) Once the main operator is set, define one or more filter conditions. Each condition includes: - A Field from the selected object - A comparison Operator - A Value to compare against Click + Add Condition to include additional filter rows. The overall filter logic follows the main operator you selected (AND/OR/Custom) ![](https://media.help.cloudfiles.io/dg-record-single-var-hs/02.png) ### Add Conditions ### Field The Field dropdown allows you to select a specific field from the chosen object to filter or identify a record based on matching criteria. (e.g., Email, FirstName, Status, Custom_Field__c) ### Operator Choose a logical operator from the dropdown: - Equals: Matches records with a field exactly equal to the specified value (e.g., for String, Picklist, Number, Boolean). - Not Equals: Matches records where the field does not equal the given value(e.g., for String, Picklist, Number, Boolean). - Greater Than: Matches records where the field value is numerically greater (e.g., for Integer, Decimals, Currency). - Greater Than or Equals: Matches records where the value is greater than or exactly equal (e.g., for Integer, Decimals, Currency). - Less Than: Matches records with a value lower than the specified input (e.g., for Integer, Decimals, Currency). - Less Than or Equals: Matches records with a value that is less than or exactly equal (e.g., for Integer, Decimals, Currency). - In: Matches records where the field value is one of multiple specified values (e.g., for Picklist, Multi-Select Picklist). - Not In: Excludes records that match any of the specified values (e.g., for Picklist, Multi-Select Picklist). - Like: Matches records based on partial text (e.g., for Text, Email, URL). ### Value The Value field is used to specify what the selected Field should be compared against. This can take multiple forms, depending on your use case: - Global Variables: Field value from the same object record ({!$Record.Id}). - Record (Single) Variables: Field value from related records. - Global Constants: A direct input like the following: - {$GlobalConstant.False} - Boolean false - {$GlobalConstant.True} - Boolean true - {$GlobalConstant.EmptyString} - Represents a blank or empty value - {$GlobalConstant.CurrentTime} - Dynamically inserts the exact timestamp when the Document is generated - Collection Variable: Record Collection Variable are now supported as filter values when using the IN or NOT IN operators, allowing records to be matched dynamically. --- # Record Collection Variable (Guide · HubSpot) https://help.cloudfiles.io/hubspot/record-collection-variable # Record Collection Variable A Record Collection Variable is a collection of records; you create it by selecting the Object type and setting conditions on the record fields. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction A Record Collection Variable is a collection of records. Creating a Record Collection Variable involves selecting the Object type and setting conditions on the record fields. To create a Record Collection Variable, follow the steps below - - Click 'Resources'; the Resource Manager opens up. - In the 'New Resource' pane, select Resource type from the drop-down as 'Record Collection Variable'. - Enter a Label, and the API Name will automatically populate. - Select the Object. - You can limit the number of output records using the 'Limit Rows' option. ![](https://media.help.cloudfiles.io/dg-record-collection-var-hs/01.png) ## Filters (Optional) To determine which records are retrieved in a Record Collection Variable, you must define filter conditions. These conditions help narrow down records from the selected object based on field values and matching criteria. Begin by selecting the main operator that controls how multiple conditions will be evaluated: - AND: All conditions must be true - OR: At least one condition must be true - Custom: Allows for advanced expressions (e.g., (1 AND 2) OR 3) Once the main operator is set, define one or more filter conditions. Each condition includes: - A Field from the selected object - A comparison Operator - A Value to compare against ### Condition ### Field The Field dropdown allows you to select the specific object field that should be used to filter or identify a record based on matching criteria. (e.g., Email, FirstName, Status, Custom_Field__c) ### Operator Choose a logical operator from the dropdown: - Equals: Matches records with a field exactly equal to the specified value (e.g., for String, Picklist, Number, Boolean). - Not Equals: Matches records where the field does not equal the given value(e.g., for String, Picklist, Number, Boolean). - Greater Than: Matches records where the field value is numerically greater (e.g., for Integer, Decimals, Currency). - Greater Than or Equals: Matches records where the value is greater than or exactly equal (e.g., for Integer, Decimals, Currency). - Less Than: Matches records with a value lower than the specified input (e.g., for Integer, Decimals, Currency). - Less Than or Equals: Matches records with a value that is less than or exactly equal (e.g., for Integer, Decimals, Currency). - In: Matches records where the field value is one of multiple specified values (e.g., for Picklist, Multi-Select Picklist). - Not In: Excludes records that match any of the specified values (e.g., for Picklist, Multi-Select Picklist). - Like: Matches records based on partial text (e.g., for Text, Email). ### Value The Value field is used to specify what the selected Field should be compared against. This can take multiple forms, depending on your use case: - Global Variables: Field value from the same object record ({!$Record.Id}). - Record (Single) Variables: Field value from related records. - Global Constants: A direct input like the following: - {$GlobalConstant.False} - Boolean false - {$GlobalConstant.True} - Boolean true - {$GlobalConstant.EmptyString} - Represents a blank or empty value - {$GlobalConstant.CurrentTime} - Dynamically inserts the exact timestamp when the Document is generated Click + Add Condition to include additional filter rows. The overall filter logic follows the main operator you selected (AND/OR/Custom). To use the fields from the Record Collection Variable, you will need to use the Insert Loopor Insert Table actions available in the template editor. ## Order By (Optional) You can optionally define the order in which matching records are sorted by selecting a field. Sorting can be done in ascending or descending order. The sort order directly determines which records are fetched when a limit is applied. For example, if a limit is set (e.g., 10 records), the top records based on the specified order will be added to the collection variable. ![](https://media.help.cloudfiles.io/dg-record-collection-var-hs/02.png) --- # Runtime Variable (Guide · HubSpot) https://help.cloudfiles.io/hubspot/runtime-variable # Runtime Variable A Runtime Variable in CloudFiles stores a value that can be used within a document template during document generation, acting as a static or default placeholder. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction A Runtime Variable in CloudFiles stores a value that can be used within a document template during document generation. These variables are used to define static or default values that act as placeholders within a template. They are useful for managing values that need to be referenced multiple times within the same template, without hardcoding them in multiple places. This makes templates easier to maintain and update. Runtime Variables are commonly used for: - Storing fixed values within a template such as company name, address or standard disclaimers - Controlling template logic such as showing or hiding content - Avoiding repeated edits by defining a value once and reusing it across the template ## Runtime Variable To create a Runtime Variable, follow the steps below: - Click Resources to open the Resource Manager. - In the 'New Resource' pane, select Resource type from the drop-down as 'Runtime Variable'. - Enter a Label, and the API Name will automatically populate. - Assign a Value Type based on your requirement such as String, Integer, Double, etc. - Assign Default Value as needed. Once created, the Runtime Variable can be referenced inside the template and used wherever required. ![](https://media.help.cloudfiles.io/dg-runtime-var-hs/01.png) ## Value Types The value type determines the format of data stored in the Runtime Variable and how it behaves inside the template. ### String String variables store text-based values and are the most commonly used type. Examples include company name, email address, URLs or any static text. ### Integer All number fields without decimals can be passed in as integers. Examples: Number, Phone or fixed numeric values. ### Double All numeric fields that allow decimal values can be passed as doubles. Examples: Currency, Percent, Number(with Decimals) ### Boolean True/False fields can be passed as Boolean values. ### Date Date variable store calendar dates without time. These can be used for fixed dates such as agreement dates or policy effective dates. ### DateTime DateTime variables store both date and time values. These are useful when both components are required in the document. ### Time Time variable store only the time component without a date ### Rich Text Area Fields storing formatted text content can be passed in as Rich Text, which includes styling such as bold, italic, and underline; paragraph formatting like line breaks, bullet points, and numbered lists; embedded hyperlinks; and basic HTML tags (e.g ,, , , ). This type is especially useful for reusable content blocks such as terms and conditions or formatted descriptions. --- # Recipients (Guide · HubSpot) https://help.cloudfiles.io/hubspot/recipients # Recipients The Recipients resource defines the individuals who will receive and sign generated documents via DocuSign, holding their name and email address for e-signature routing. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Recipients resource allows you to define the individuals who will receive and sign generated documents via DocuSign. This resource holds information such as the recipient’s name and email address, which are critical for routing the document to the right person for e-signature. This is a key part of using DocuSign with Word documents. It allows you to assign each signature space to the correct recipient. A Recipient is a configuration that holds: - Label – An internal name you assign (e.g., Primary Approver or Client Contact). - Name Field – A merge field from your record that dynamically inserts the recipient’s name. - Email Field – A merge field pointing to the recipient’s email address, used to send the signature request via DocuSign. ## How to Create a Recipient Resource To create a new recipient: - Navigate to the Template → Resources tab and click + Create New Resource. - Set the Resource Type to Recipient. - Enter the following fields: - Label – Custom name for this recipient. - Name Field – Select a dynamic field (e.g., {$Record.firstame}). - Email Field – Select the email field (e.g., {$Record.email}). - Click Save. ![](https://media.help.cloudfiles.io/dg-recipients-hs/01.png) > **Important** — Make sure the email field contains a valid email. Otherwise, DocuSign won’t be able to deliver the signing request. Once a recipient is configured, you can assign them to a signature field inside your Word template. To insert a signature field and link it to a recipient, you’ll need to use the Insert Form Field action. --- # Template-Actions https://help.cloudfiles.io/hubspot/template-actions # Template-Actions Now that we have created resources, the next step is to build templates using template actions. We offer templates in Word, Excel and PowerPoint, each with its own set of unique actions, which we will explore in this article. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Now that we have created resources, the next step is to build templates using template actions. We offer templates in Word, Excel and PowerPoint, each with its own set of unique actions, which we will explore in this article. - Word DocX Template Actions- Template actions in Word allow you to dynamically insert fields, images, tables, loops, and conditions based on HubSpot data. These actions enable structured content, automate document generation and help organize files by setting document titles. By leveraging these features, you can enhance accuracy, flexibility and efficiency in template creation. - Excel Template Actions- Template actions in Excel enable dynamic insertion of fields and tables based on HubSpot data. These actions facilitate structured content, automate document generation and streamline file organization by setting document titles. By utilizing these features, you can improve accuracy, flexibility, and efficiency in template creation. - PPT Template Actions- PowerPoint template actions allow you to dynamically insert fields and tables using HubSpot data. They facilitate structured content, automate document creation, and help manage files by defining document titles. Leveraging these features enhances accuracy, adaptability, and efficiency in template design. --- # Word DocX Template Actions (Guide · HubSpot) https://help.cloudfiles.io/hubspot/word-docx-template-actions # Word DocX Template Actions In the Actions section, you can customize your document templates using various operations that insert fields, pictures, tables, apply conditions and set document titles. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction In the Actions section, you can customize your document templates using various operations. These actions allow you to insert fields, pictures, tables, apply conditions and set document titles based on your requirements. ## Supported Actions After setting up your resources, you can use the following actions to build your template: - Insert Field – Add standard or custom fields from the Master Object or create and insert resources as needed. - Insert Picture – Insert images from URL fields directly into your document template. - Insert Table – Create and customize tables based on HubSpot records, adjusting structure and content as required. - Insert Loop – Repeat a section of the template dynamically for a set of records or a record collection. - Insert Condition – Apply conditional logic to insert text, tables, or pictures based on specific field values. - Insert Link- The Insert Link action adds a hyperlink to your document using a stored URL. The link can have a custom label and dynamically update if the URL is stored in a record. - Document Title – Assign a title to the generated document by selecting a relevant field for better organization. ## Video Overview The video guides the user through the process of creating a Word template for document generation in CloudFiles Doc Gen. It explains how to structure the template and map HubSpot record fields for automated purchase order document generation. [Watch video](https://www.youtube.com/embed/p49YtbzXTEI) --- # Insert Field (Word · HubSpot) https://help.cloudfiles.io/hubspot/qb4d-insert-field # Insert Field Insert Field lets you insert standard or custom fields from the Master Object or Record Variables into a Word document, with options to format text case, font, dates, and numbers. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Insert Field action allows you to insert any field (standard or custom) retrieved from the Master Object or Record Variables ## Steps to insert a field - Select Insert Field from the Select Action drop-down menu. - Choose the desired field from the drop-down menu. - Master Object fields are listed under "Record" (Global Variables). - Record Variables appear under "Variable". - Constants are listed under "Global Constants". - Click Insert to place the field at the cursor's location in the work area. You can also copy and paste inserted fields as needed. ## Formatting Options Text: You can choose to capitalize (first letter in uppercase), use lowercase or uppercase for the text. ![](https://media.help.cloudfiles.io/dg-word-insert-field-hs/01.png) Font: All inserted fields can be formatted like regular text in Word, including changes to font, size and style. Date Formatting: You can format dates as Short (08/23/2024), Medium (Aug 23 2024), Long (August 23, 2024), or Full (Friday, August 23, 2024). ![](https://media.help.cloudfiles.io/dg-word-insert-field-hs/02.png) Number Formatting: For number fields (like int or double), you can apply custom formats: - # – shows digit only if present (e.g., ###,###.### → 1,234.56) - 0 – always shows digit, even if zero (e.g., 000,000.000 → 001,234.560) - , – thousands separator - . – decimal separator ![](https://media.help.cloudfiles.io/dg-word-insert-field-hs/03.png) Go to 0:27 to see the Insert Field action being used to create a PO template in Microsoft Word. [Watch video](https://www.youtube.com/embed/p49YtbzXTEI) --- # Insert Picture (Word · HubSpot) https://help.cloudfiles.io/hubspot/YLV8-insert-picture # Insert Picture Insert Picture action enables you to insert a picture using an image URL, retrieved dynamically from a HubSpot record field or entered manually. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Insert Picture action enables you to insert a picture using an image URL. The image link can be - Retrieved dynamically from a field in your HubSpot records or - Entered manually as a direct image link Once the URL is provided, the image will be rendered wherever the action is used. ## Inserting an Image Using a URL - Select "Insert Picture" - From the Select Action drop-down menu, choose Insert Picture. - Choose the Picture Source - In the Picture Source drop-down, select URL. - Select the URL Field - In the URL drop-down, choose the field that contains the public link to the image. - This field can dynamically insert images based on URLs retrieved from record fields or other variable resources. - Insert the Image - Click Insert to place the image at the desired location. - Adjust the Image - Resize or reposition the image as needed. - Apply formatting options, such as adding a border, for a polished appearance. ![](https://media.help.cloudfiles.io/dg-word-insert-picture-hs/01.png) Go to 2:30 to see the Insert picture action being used to create a PO template in Microsoft Word. [Watch video](https://www.youtube.com/embed/p49YtbzXTEI) --- # Insert Table (Word · HubSpot) https://help.cloudfiles.io/hubspot/h9jZ-insert-table # Insert Table You can insert a table into a Microsoft Word template using data from HubSpot records stored as a Collection Variable Resource, allowing structured data to be retrieved and displayed within the document. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction You can insert a table into a Microsoft Word template using data from HubSpot records. These records are stored as a Collection Variable Resource, which allows you to retrieve and display structured data within the document. - Select the Action: - In the "Select Action" dropdown, choose "Insert Table." - Choose a Record Collection Variable: - In the "Resource Type" field, select a Record Collection Variable Resource. - Ensure that a Collection variable resource is created before inserting the table. - Only one collection variable is supported per table. Multiple collection variables are not currently supported. - Define Table Structure: - Set the resource type as a collection. - Specify the number of columns and rows required. - You can define or later modify the number of rows and columns using the built-in table editing tools - Insert Fields and Manage Rows: - Insert relevant fields into the table. You can insert multiple fields into the same cell. - To create dynamic rows, set them as data rows by placing the cursor in any cell of the required row and click the Make Data Row option that appears under the Insert Table action. > Data rows repeat themselves for the selected collection. For example, the first row represents the first Line item, the second row represents the second Line item and so on. > While using the Insert Field action, the created Record Collection Variable is only available when you enter the Data row.Fields, conditions, and links can only be inserted within a designated Data Row By following these steps, you can dynamically insert and manage tables based on record collections. ![](https://media.help.cloudfiles.io/dg-word-insert-table-hs/01.png) > You can customize and format the table using standard Word formatting options, including font styles, alignment, borders, and shading. Go to 2:56 to see the Insert Table action being used to create a PO template in Microsoft Word. [Watch video](https://www.youtube.com/embed/p49YtbzXTEI) --- # Insert Loop (Guide · HubSpot) https://help.cloudfiles.io/hubspot/insert-loop # Insert Loop The Insert Loop action lets you repeat a section of a document template using data from multiple HubSpot records in a record collection. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Insert Loop action allows you to repeat a specific section of a document template using data from multiple HubSpot records. Each iteration of the loop is populated with property values from a single record in a record collection and the section is repeated consecutively in the generated document. Insert Loop is commonly used when you need to display lists such as line items, associated deals, related contacts or any grouped record data in a structured format. ## How to Insert a Loop: ### Step 1: Create a Record Collection Variable Before inserting a loop, ensure that a Record Collection Variable is created. This variable defines the set of HubSpot records that the loop will iterate over. For detailed instructions, refer to the Record Collection Variablesection to learn how to create and configure a collection. ### Step 2- Insert the Loop in the Template - Use the Select Action dropdown and choose Insert Loop . - In the Resource Type dropdown, select the Record Collection Resource you just created. ![](https://media.help.cloudfiles.io/dg-word-insert-loop-hs/01.png) ### Step 3- Customize the Loop Content - The inserted loop will appear in the template with a placeholder section labeled "Click or tap here to enter text.” ![](https://media.help.cloudfiles.io/dg-word-insert-loop-hs/02.png) - Click the placeholder to select it, erase the placeholder text and begin creating the content for the loop using fields from the selected Record Collection. Use the Insert Field action to add fields dynamically within the loop. Example: In the image below, the loop iterates over related contact's details. Inside the loop, fields for-First name, Last name and Email ID, have been inserted as dynamic text. ![](https://media.help.cloudfiles.io/dg-word-insert-loop-hs/03.png) Preview the Generated Document: When the document is generated, the loop content will repeat for each record in the collection. Each iteration will populate the fields with data from a single record in the collection. Example Output: For an Account with two related Opportunities, the content inside the loop will repeat twice, once for each Opportunity. Generated Document Sample: ![](https://media.help.cloudfiles.io/dg-word-insert-loop-hs/04.png) --- # Insert Condition (Guide · HubSpot) https://help.cloudfiles.io/hubspot/insert-condition # Insert Condition Insert Condition action allows you to conditionally insert any content (text, table, picture) into the template. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Insert Condition action allows you to conditionally insert any content (text, table, picture) into the template. Follow the steps below to insert a condition - - Select "Insert Condition" in the "Select Action" drop-down menu. - Select the content to be inserted based on the condition. - Set Up the Rules: - Add multiple rules using "+ Add condition". - Rule Parameters: - Field: Choose the field or variable whose value you want to evaluate. - Operator: Select an operator based on the data type of the resource. - Value: - Select an existing variable, constant, or field. - Manually enter a literal value or merge field. ![](https://media.help.cloudfiles.io/dg-word-insert-condition-hs/01.png) - Set Up the Rules: - Logic Between Rules: - AND: - All rules must be met. - OR: - Any rule must be met. - Custom: Custom rule logic. Provide the rule logic by entering characters: - Use numbers to refer to each rule. - Use AND, OR, or NOT to identify which combination of rules must be true. - Use parentheses to group parts of the string together. - Example: For - Insert the Condition: - Once the condition is set up, click "Insert" to apply the condition to the selected content. - If the condition evaluates to true, the content is inserted in the generated document; otherwise, it will not be inserted. Go to 4:41 to see the Insert Condition action being used to create a PO template in Microsoft Word. [Watch video](https://www.youtube.com/embed/p49YtbzXTEI) --- # Insert Link (Guide · HubSpot) https://help.cloudfiles.io/hubspot/insert-link # Insert Link The Insert Link action adds a hyperlink to your document using a stored URL, with a custom label that can dynamically update if the URL is stored in a record. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Insert Link action adds a hyperlink to your document using a stored URL. The link can have a custom label and dynamically update if the URL is stored in a record. - Select "Insert Link" - From the Select Action drop-down menu, choose Insert Link. - Add a Label - Enter a descriptive label for the link (e.g., "Company Website"). - This label will be displayed as the clickable text in the generated document. - Select the URL Source - Choose the field containing the website URL; if stored in a record, the link will dynamically update for different records. - Insert the Link - Click Insert to add the hyperlink to your document. - Adjust as Needed - Modify the placement, formatting, or text style to fit the document’s layout. ![](https://media.help.cloudfiles.io/dg-word-insert-link-hs/01.png) Go to 2:07 to see the Insert Link action being used to create a PO template in Microsoft Word. [Watch video](https://www.youtube.com/embed/p49YtbzXTEI) --- # Document Title (Word · HubSpot) https://help.cloudfiles.io/hubspot/nac6-document-title # Document Title This action allows you to assign a title to the documents generated from a given template. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction This action allows you to assign a title to the documents generated from a given template. Follow the steps below to set a Document Title - - Select "Document Title" in the "Select Action" drop-down menu. - Choose a field to be set as the Document Title. - Click "Save" to set the selected field as the Document Title. The generated document will have this name. Go to 5:29 to see the Document Title action being used to create a PO template in Microsoft Word. [Watch video](https://www.youtube.com/embed/p49YtbzXTEI) --- # Insert Form Field (Guide · HubSpot) https://help.cloudfiles.io/hubspot/insert-form-field # Insert Form Field Insert Form Field lets you add a signature placeholder inside your Word document, showing where someone needs to sign when the document is sent using DocuSign. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Insert Form Field lets you add a signature placeholder inside your Word document. This shows where someone needs to sign when the document is sent using DocuSign. You can use this action with the CloudFiles Word Add-in to prepare documents for e-signature using Recipients ## How to Insert a Form Field for Signature - In the Resources Panel, set the action to 'Insert Form Field'. - Set the Type to 'Signature' - Under Recipient, select the individual the signature should be assigned to. This list includes all recipients configured under the Recipients resource. - Click the location in your Word document where the signature should appear. - Press Insert. - A placeholder with the word "signature" will appear at the selected location. ![](https://media.help.cloudfiles.io/dg-word-insert-form-field-hs/01.png) ## How to Insert a Form Field for Date signed/ Text Field - In the Resources Panel, set the action to 'Insert Form Field'. - Set the Type to 'Date signed/ Text' - Under Recipient, select the individual the field should be assigned to. This list includes all recipients configured under the Recipients resource. - Click the location in your Word document where the signature should appear. - Press Insert. - A placeholder with the word "Date signed" / "Text" will appear at the selected location. - The Date Signed Field will automatically populate when the recipient signs the document in DocuSign, showing the exact signing timestamp. - The Text Field presents an input box where recipients can enter custom text as part of the signing process. ![](https://media.help.cloudfiles.io/dg-word-insert-form-field-hs/02.png) These fields are non-editable placeholders in the generated document the actual signing happens in DocuSign. For more details, refer to section- eSignature Integration --- # Excel Template Actions (Guide · HubSpot) https://help.cloudfiles.io/hubspot/excel-template-actions # Excel Template Actions Learn how to use Excel template actions to insert record properties, build dynamic tables, and set document titles in HubSpot Excel templates. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Using Excel template actions, you can define how HubSpot data is added and structured within your Excel templates. These actions allow you to insert record properties, build dynamic tables and set document titles for generated files. After setting up your resources, you can use the following actions to build your template: - Insert Field – Add standard or custom fields from the Master Object, or create and insert resources as needed. - Insert Table – Create and customize tables based on Salesforce records, adjusting structure and content as required. - Document Title – Assign a title to the generated document by selecting a relevant field for better organization. ![](https://media.help.cloudfiles.io/dg-excel-actions-hs/01.png) ![](https://media.help.cloudfiles.io/dg-excel-actions-hs/02.png) --- # Insert Field (Excel · HubSpot) https://help.cloudfiles.io/hubspot/insert-field # Insert Field The Insert Field action lets you insert any HubSpot property into your Excel template as a placeholder that fetches relevant data when the file is generated. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Insert Field action allows you to insert any HubSpot property into your Excel template as placeholder and fetches relevant data when the file is generated. You can insert data from the following sources: - Master Object: The HubSpot record selected at the start of template creation including all its properties. - Record Variable: Holds a record and its field values, created by selecting an object type and setting conditions. ## Steps to insert a field - Select Insert Field from the Select Action drop-down menu. - Choose the desired field from the drop-down menu. - Master Object fields are listed under "Record" (Global Variables). - Record Variables appear under "Variable". - Click Insert to place the field at the cursor's location in the work area. You can also copy and paste inserted fields as needed. ## Formatting Options Text: You can choose to capitalize (first letter in uppercase), use lowercase, or uppercase for the text. ![](https://media.help.cloudfiles.io/dg-excel-insert-field-hs/01.png) Font: All inserted fields can be formatted like regular text in Word, including changes to font, size, and style. Date Formatting: You can format dates as Short (08/23/2024), Medium (Aug 23 2024), Long (August 23, 2024), or Full (Friday, August 23, 2024). Number Formatting: For number fields (like int or double), you can apply custom formats: - # – shows digit only if present (e.g., ###,###.### → 1,234.56) - 0 – always shows digit, even if zero (e.g., 000,000.000 → 001,234.560) - , – thousands separator - . – decimal separator ![](https://media.help.cloudfiles.io/dg-excel-insert-field-hs/02.png) --- # Insert Table (Excel · HubSpot) https://help.cloudfiles.io/hubspot/insert-table # Insert Table The Insert Table action lets you insert a table into an Excel template using data from HubSpot Record Collection Variables. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Insert Table action allows you to insert a table into an Excel template using data from HubSpot records. Tables are built using Record Collection Variables, which store multiple records of the same object type. ## Steps to Insert a Table - Select the Action: - In the "Select Action" dropdown, choose "Insert Table." - Choose a Record Collection Variable: - In the "Resource Type" field, select a Record Collection Variable Resource. - Ensure that a Record Collection Variable Resource is created before inserting the table. - Define Table Structure: - Set the Collection Variable Resource in the resource type dropdown. - Select the desired number of columns in the Excel sheet, click "Insert" and a table will be created automatically without specifying the number of rows. - Insert Fields : - Rename the columns as needed and insert relevant fields using Insert Field action in the first row of the table. By following these steps, you can dynamically insert and manage tables based on record collections. > You can customize and format the table using standard Word formatting options, including font styles, alignment, borders, and shading. ![](https://media.help.cloudfiles.io/dg-excel-insert-table-hs/01.png) --- # Document Title (Excel · HubSpot) https://help.cloudfiles.io/hubspot/document-title # Document Title The Document Title action allows you to define the name of the Excel file generated from a template. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Document Title action allows you to define the name of the Excel file generated from a template. Follow the steps below to set a Document Title - Select "Document Title" in the "Select Action" drop-down menu. - Choose a field to be set as the Document Title. - Click "Save" to set the selected field as the Document Title. The generated document will have this name. ![](https://media.help.cloudfiles.io/dg-excel-doc-title-hs/01.png) --- # PPT Template Actions (Guide · HubSpot) https://help.cloudfiles.io/hubspot/ppt-template-actions # PPT Template Actions Using CloudFiles PPT template actions, you can define how HubSpot data is added and formatted within your PowerPoint templates. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Using CloudFiles PPT template actions, you can define how HubSpot data is added and formatted within your PowerPoint templates. This includes inserting record properties, dynamically adding images and assigning titles to generated documents. Once your resource variables are configured, you can use the following actions to build and personalize your template: - Insert Field – Add HubSpot records properties from master records or any associated records - Insert Picture – Insert images dynamically using image URLs - Document Title – Define the title of the generated document for easier identification and organization. ![](https://media.help.cloudfiles.io/dg-ppt-actions-hs/01.png) ![](https://media.help.cloudfiles.io/dg-ppt-actions-hs/02.png) --- # Insert Field (PPT · HubSpot) https://help.cloudfiles.io/hubspot/xyU7-insert-field # Insert Field The Insert Field action lets you insert dynamic data into your PPT template using HubSpot properties and variables from the master record or record variables. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Insert Field action allows you to insert dynamic data into your PPT template using HubSpot properties and variables. You can insert data from the following sources: - Master record: The HubSpot record selected at the start of template creation including all its associated properties. - Record Variable: Holds a record and its field values, created by selecting an object type and setting conditions. ## Steps to insert a field - Select Insert Field from the Select Action drop-down menu. - Choose the desired field from the drop-down menu. - Master record fields are listed under "Record" (Global Variables). - Record Variables appear under "Variable". - Click Insert to place the field at the cursor's location in the work area. You can also copy and paste inserted fields as needed. ## Formatting Options Text: You can choose to capitalize (first letter in uppercase), use lowercase, or uppercase for the text. ![](https://media.help.cloudfiles.io/dg-ppt-insert-field-hs/01.png) Font: All inserted fields can be formatted like regular text in Word, including changes to font, size, and style. Date Formatting: You can format dates as Short (08/23/2024), Medium (Aug 23 2024), Long (August 23, 2024), or Full (Friday, August 23, 2024). Number Formatting: For number fields (like int or double), you can apply custom formats: - # – shows digit only if present (e.g., ###,###.### → 1,234.56) - 0 – always shows digit, even if zero (e.g., 000,000.000 → 001,234.560) - , – thousands separator - . – decimal separator ![](https://media.help.cloudfiles.io/dg-ppt-insert-field-hs/02.png) --- # Insert Picture (PPT · HubSpot) https://help.cloudfiles.io/hubspot/insert-picture # Insert Picture The Insert Picture action lets you dynamically insert images into your PPT template using static image URLs or URLs stored in HubSpot properties. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Insert Picture action allows you to dynamically insert images into your PPT template using static image URLs or using image URLs stored in HubSpot properties ## Inserting an Image Using a URL - Select "Insert Picture" - From the Select Action drop-down menu, choose Insert Picture. - Choose the Picture Source - In the Picture Source drop-down, select URL. - Select the URL Field - In the URL drop-down, choose the HubSpot property that contains the public link to the image or add a image URL manually - This field can dynamically insert images based on URLs retrieved from record fields or other associated variable resources. - Insert the Image - Click Insert to place the image at the desired location. - Adjust the Image - Resize or reposition the image as needed. - Apply formatting options, such as adding a border, for a polished appearance. ![](https://media.help.cloudfiles.io/dg-ppt-insert-picture-hs/01.png) --- # Document Title (PPT · HubSpot) https://help.cloudfiles.io/hubspot/zk40-document-title # Document Title The Document Title action allows you to define the name of the document generated from the PowerPoint template by selecting a HubSpot property. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Document Title action allows you to define the name of the document generated from the PowerPoint template. By selecting a HubSpot property, you can ensure generated documents are clearly named and easy to identify. Follow the steps below to set a Document Title - Select "Document Title" in the "Select Action" drop-down menu. - Choose a HubSpot property to be set as the Document Title. - Click "Save" to set the selected field as the Document Title. Once set, every document generated from this template will use the selected field value as its title. ![](https://media.help.cloudfiles.io/dg-ppt-doc-title-hs/01.png) --- # Template Control Center https://help.cloudfiles.io/hubspot/template-control-center # Template Control Center The Template Control Center provides a centralized location to manage and monitor all document templates created using CloudFiles Document Generation. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Template Control Center provides a centralized location to manage and monitor all document templates created using CloudFiles Document Generation. The Template Control Center is designed to give visibility, review and control over document templates that are created and used across your HubSpot account. ## Managing Templates The Templates tab provides an overview of all document templates published in CloudFiles.For each template, you can view key details such as the HubSpot object it is associated with, the user who created the template, the date it was created, and its current version information. This overview makes it easy to understand how templates are being used across different HubSpot records. ## Template Actions Using the three-dot menu next to a template, users can: - View version history - Download the template - Delete template ![](https://media.help.cloudfiles.io/dg-template-control-center-hs/01.png) ## Version History The Version History view provides a detailed record of all versions published for a template. Each version can be individually downloaded, allowing teams to review or restore earlier versions when needed. ![](https://media.help.cloudfiles.io/dg-template-control-center-hs/02.png) --- # Generating Documents (Guide · HubSpot) https://help.cloudfiles.io/hubspot/generating-documents # Generating Documents This section explains how to generate documents within HubSpot using CloudFiles. Once templates are designed and published using CloudFiles interfaces, documents can be generated directly from HubSpot records using live record data. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction This section explains how to generate documents within HubSpot using CloudFiles. Once templates are designed and published using CloudFiles interfaces, documents can be generated directly from HubSpot records using live record data. This section is divided into 2 articles: - Manual Document Generation- In this article, you’ll learn how to manually generate documents from HubSpot record pages using the Doc-Generation widget and how generated files are downloaded for immediate use - Automate Document Generation using HubSpot Workflows- This article explains how to automatically generate documents using HubSpot workflows. By using the Generate Document workflow action, documents can be created automatically based on workflow triggers or conditions. --- # Manual Document Generation https://help.cloudfiles.io/hubspot/manual-document-generation # Manual Document Generation Explains how to add the Doc-Generation widget to a HubSpot record page and use it to manually generate documents from templates. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Doc-Generation widget allows users to manually generate documents (Word, excel, ppt, pdf) from any HubSpot record page using predefined templates. Once you create and publish a template using the How to build a template tutorial, you can manually generate documents via a record. To do so, you must add the Doc-Generation widget to the record page. This guide explains how to set up the widget and use it to generate documents. ## What to Expect By the end of this tutorial, you will know how to: - Add the Doc-Gen widget to a HubSpot record page - Generate documents manually from a record ## Pre-requisites ### Install CloudFiles in HubSpot CloudFiles is available on the app marketplace and can be installed using the standard app installation process. Check out Installation guide for CloudFiles HubSpot Integration. ![](https://media.help.cloudfiles.io/dg-manual-doc-gen-hs/01.png) ### Insert Doc Generation Card The Doc Generation App Card is integrated into HubSpot across the four primary objects: Contacts, Deals, Companies, and Tickets. It allows you to see a list of all your templates and generate & download documents manually from HubSpot records. The card appears in the middle section of the HubSpot record, either in the standard tabs or in any custom tabs. The CloudFiles card is not added by default on the record pages. To add the card, go to any record, click on the customize button on the top right, open the default view and add the card to an existing tab / new tab. [Watch video](https://youtu.be/vU2uvQn5VKY) Once the widget is added to the record page, the record will automatically display the published templates available for that object within the widget. ## Test the setup - Navigate to a record where the widget has been added. - In the CloudFiles Doc-Gen widget, you’ll see a list of all published templates. - Click the dropdown next to the template you want to use. Choose Generate Docx or Generate Pdf from the menu. - File is Downloaded and the file is saved to your local computer. ![](https://media.help.cloudfiles.io/dg-manual-doc-gen-hs/02.png) --- # Automate Document Generation using HubSpot Workflows https://help.cloudfiles.io/hubspot/automate-document-generation-using-hubspot-workflows # Automate Document Generation using HubSpot Workflows Learn how to automate document generation from HubSpot workflows using the Generate Document action, including template, destination, and PDF conversion parameters. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction You can automate the creation of documents using the Generate Document action in HubSpot workflows. This allows documents to be generated automatically when specific workflow triggers or conditions are met, eliminating the need to manually generate documents from the CloudFiles widget on individual records. With this action, documents can be generated using predefined templates and automatically stored in your connected cloud storage such as SharePoint, Google Drive, OneDrive or Dropbox. To make sure this action works with your Cloud Storage, you need to understand What is an 'Automation User' and how does it work? This automation is particularly useful for processes such as: - Automatically generating contracts when a deal reaches a specific stage - Creating invoices after a deal is closed - Generating onboarding documents when a contact lifecycle stage changes ![](https://media.help.cloudfiles.io/dg-automate-doc-gen-hs/01.png) The Generate Document action takes several parameters that define which template should be used and where the generated document should be stored. - Template ID: The Template ID specifies which CloudFiles document template will be used to generate the document. - Destination Library: The cloud storage where the generated document will be stored (e.g. SharePoint, Google Drive, OneDrive, Box, Dropbox, or CloudFiles). - Path to Destination Folder: The exact folder path where the generated document will be saved. The path can be defined using a ’/’ separated string and can be personalized using HubSpot record tokens. - Convert to PDF: Determines whether the generated document should be converted to PDF or saved in the same format as the template. ![](https://media.help.cloudfiles.io/dg-automate-doc-gen-hs/02.png) These parameters have been detailed in the sections below. ## 1 - Template ID Each template created with CloudFiles has a unique Template ID that identifies it during automation. When the workflow runs, CloudFiles uses this ID to locate the correct template and generate the document based on the data available in the HubSpot record. The Template ID can be found on the Templates page in the CloudFiles web interface. ![](https://media.help.cloudfiles.io/dg-automate-doc-gen-hs/03.png) ## 2 - Destination Library The Destination Library defines the cloud storage location where the generated document will be saved. CloudFiles supports multiple storage providers such as SharePoint, Google Drive, OneDrive and Dropbox. Depending on the selected library, additional parameters such as Drive ID may be required. ![](https://media.help.cloudfiles.io/dg-automate-doc-gen-hs/04.png) ## 3 - Shared Drive ID / Drive This is important for Google Drive & SharePoint library selection. Both these cloud storage have multiple drives where files can be stored. E.g. Google Drive has My Drive & Shared Drive while SharePoint can have multiple drives inside multiple sites. This parameter helps CloudFiles identify which drive to choose for the generated file. ## 4 - Path to Destination Folder The Path to Destination Folder specifies the exact location within the selected cloud storage where the generated document will be saved. This path should be provided as a ’/’ separated string representing the folder structure. The folder path can be copied from the metadata section in the CloudFiles dashboard and can be personalized using HubSpot record tokens to dynamically organize generated documents based on records info. To copy Path to Destination Folder and Drive ID from CloudFiles dashboard, Follow the steps below: - Open CloudFiles dashboard- https://hubspot.cloudfiles.io/ and login if prompted. - Under the libraries tab, navigate to the folder where you want to save the generated document. - Copy the parameter from the metadata on the right side of the screen. ![](https://media.help.cloudfiles.io/dg-automate-doc-gen-hs/05.png) ## 5 - Convert to PDF The Convert to PDF parameter determines the format in which the generated document will be saved. When enabled, the generated document will be automatically converted into PDF format. Otherwise, the document will be saved in the same format as the original template. ![](https://media.help.cloudfiles.io/dg-automate-doc-gen-hs/06.png) ## 6 - Return Values The Generate Document action returns the following values. These can be used in later actions to chain together actions and create complex automations. 1. Action Status - This is a success or failure message based on whether the action executed correctly. ![](https://media.help.cloudfiles.io/dg-automate-doc-gen-hs/07.png) Need help? Book time with our team of experts. --- # eSignature Integration https://help.cloudfiles.io/hubspot/esignature-integration # eSignature Integration CloudFiles eSignature integration allows you to automatically send generated documents from HubSpot for signing using DocuSign. You can define recipients, place signing and input fields directly in your templates and trigger signing as part of your document generation and e-signature flow. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles eSignature integration allows you to automatically send generated documents from HubSpot for signing using DocuSign. You can define recipients, place signing and input fields directly in your templates and trigger signing as part of your document generation and e-ign flow. This section is divided into 2 sub-sections - DocuSign Integration (Setup)- Learn how to connect your DocuSign account with CloudFiles in HubSpot to enable eSignature for document generation. - DocuSign Field Integrations- Learn how to use Signature, Text and Date Signed fields in Word templates and assign them to recipients. --- # DocuSign Integration (Setup) https://help.cloudfiles.io/hubspot/docusign-integration-setup # DocuSign Integration (Setup) Explains how to connect your DocuSign account with CloudFiles in HubSpot, a mandatory setup before sending documents for eSignature or using DocuSign form fields in templates. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction This article explains how to connect your DocuSign account with CloudFiles in HubSpot. This setup is mandatory before you can send documents for eSignature or use DocuSign form fields in templates. > An active DocuSign account is necessary to complete the integration successfully ## How to setup DocuSign integration - Open CloudFiles web app(https://hubspot.cloudfiles.io) and log-in to your account - Go to Document Generation tab and navigate to Integrations sections - Click on connect and you will redirected to DocuSign sign-in page - Enter DocuSign credentials and grant permissions to CloudFiles to complete the setup After successful setup the Integrations tab displays: - DocuSign connection status - Connected DocuSign user details ![](https://media.help.cloudfiles.io/dg-docusign-setup-hs/01.png) > Without completing this integration, e-sign-related actions and fields will not function in document template creation In next section, we will enable recipient-based signing, placement of DocuSign fields within Word templates and automated delivery of generated documents for signature --- # DocuSign Field Integrations https://help.cloudfiles.io/hubspot/docusign-field-integrations # DocuSign Field Integrations The DocuSign integration lets you automatically send generated documents for e-signature via DocuSign using predefined form fields and recipient mappings. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The DocuSign integration feature enables you to automatically send generated documents for e-signature directly via DocuSign, using predefined form fields and recipient mappings. In addition to signature capture, the integration also supports Date Signed and Text fields, allowing you to collect signing timestamps and custom input from recipients during the signing process. This functionality works in combination with two key additions to your document generation configuration: - Recipient Resource – This defines the recipient of the generated PDF. It includes the recipient’s name, email and determines who receives the DocuSign request. - Insert Form Field Action – This allows you to insert DocuSign form fields directly into the Word document template, including Signature, Date Signed and Text fields. - Date Signed Field - Automatically captures and displays the signing date. - Text Field - Enables recipients to enter custom text during document signing. Each field is linked to a specific recipient and defines where input is captured during signing. ## Prerequisite Before using this feature, ensure your DocuSign account is connected to CloudFiles. Navigate to CloudFiles web app → Document generation tab → Integrations section and connect your DocuSign account. This step is mandatory for all DocuSign-related functionality to work correctly. ## How to Use This Feature Follow these steps to configure recipients and signature fields - ### 1 - Create a Recipient Resource Start by adding a new recipient resource. This resource should include all relevant recipient details, especially the email address to which the DocuSign request will be sent. ![](https://media.help.cloudfiles.io/dg-docusign-field-hs/01.png) ### 2 - Insert a Form Field Action - Open your Word template in the document generation configuration. - From the Insert Form Field Action dropdown, select the Signature field type. - Choose the intended Recipient to whom this signature is assigned. This ensures that when the document is sent, the correct person receives the email and is prompted to sign. ![](https://media.help.cloudfiles.io/dg-docusign-field-hs/02.png) ### 3 - Visual Placement of Signature Field Once inserted, a placeholder form field with the word "signature" will appear in your document. This field marks the approximate location where the DocuSign signature box will appear. ![](https://media.help.cloudfiles.io/dg-docusign-field-hs/03.png) ### 4- Form Fields for Text and Date signed Similarly, Insert placeholder form fields for Text and Date signed Field Behavior During Signing: - Date Signed Field: Automatically populated when the recipient signs the document in DocuSign, showing the exact signing timestamp. - Text Field: Presents an input box where recipients can enter custom text as part of the signing process. ![](https://media.help.cloudfiles.io/dg-docusign-field-hs/04.png) > The actual rendering may vary slightly, We recommend testing different positions to ensure fields appear in optimal locations for your specific template layout. ### 5 - Triggering DocuSign When you generate a preview or finalize the document, a call is made to DocuSign. The system will: - Generate the PDF. - Send an email to the designated recipient with the PDF attached for signature. > **Additional Notes** — You can use multiple Date Signed and Text fields in the same document but each field must be assigned to a specific recipientYou can assign signature fields to multiple recipients in the same document.Coming Soon: The signing order feature (to define who signs first, second, etc.) --- ## HubSpot: Account & Admin --- # Tutorials https://help.cloudfiles.io/hubspot/tutorials # Tutorials In this section, we discuss various use cases in HubSpot that can be solved using CloudFiles. > Kind: Tutorial · Updated: Jul 8, 2026 In this section, we discuss various use cases in HubSpot that can be solved using CloudFiles - Automated Folder Hierarchies - In this tutorial, we'll guide you on creating automated folders and sub-folders in any external storage directly from any HubSpot record using CloudFiles-HubSpot Integration. - Automated Internal Notifications - In this tutorial, you'll learn how to notify your team by generating links for files uploaded to HubSpot using the HubSpot-CloudFiles integration, making it easier to manage and track file distribution within your team. - Auto Create Contacts from File Views - This tutorial shows how to capture HubSpot contacts automatically when files are viewed using CloudFiles' Soft-Gated and No-Gate methods. - Collecting sensitive documents - In this tutorial, we will guide you to create a document collection portal for sensitive documents in a compliant way using HubSpot-CloudFiles integration. - Collect anonymous analytics on documents - In this tutorial, we have explained how you can publicly share PDFs and other documents stored in any cloud storage across various marketing channels through HubSpot - CloudFiles integration. - Custom File Analytics Dashboard - In this tutorial, we will explore how to create and use the CloudFiles custom object in HubSpot to track and analyze file views. - Data Consent and Privacy Notice - This tutorial guides you in enabling data consent and privacy compliance in CloudFiles, ensuring transparency with users. - Document approval process - In this tutorial, we explain how you can create a document approval process within HubSpot using HubSpot-CloudFiles integration. - E-mail Attachment Tracking - In this tutorial, we have explained how e-mail attachments sent through mass HubSpot campaigns can be tracked and reported on using the CloudFiles - HubSpot Integration. - File Portals for Sales & Service teams - In this tutorial, we explain how you can share file portals through HubSpot - CloudFiles integration. - File Upload Portal for clients - In this tutorial, we explains how to create a self-updating document portal HubSpot-CloudFiles integration. - Mirror Deal Folder to Contacts Automatically - In this tutorial, we'll guide you through creating automated folders when a deal is created and ensuring that the same parent deal folder is automatically associated to the associated contacts of the deal using the CloudFiles-HubSpot integration. - Move Files from HubSpot Forms to External Storage - In this tutorial, we will explore how to transfer files submitted through HubSpot forms to your storage platform using the HubSpot - CloudFiles integration. The files will be stored in folders that are automatically created based on form submissions. - Selective File collection portal - In this tutorial, we'll show you how to automate a conditional file collection portal in external storage, linked to HubSpot records via the CloudFiles-HubSpot integration. You'll learn to generate dynamic parent folders, sub-folders and file request blocks based on user input using CloudFiles workflow actions. - Selective Sub-Folder Sharing - In this tutorial, we'll show you how to automatically create folders in external storage and share links to subfolders from a HubSpot record using the CloudFiles-HubSpot Integration. - Send secure collaterals using Email Verification - Learn to securely share marketing materials from HubSpot using CloudFiles, with options for email verification and automated workflows. This tutorial covers manual and automated methods to generate, secure, and track file-sharing links for smooth distribution. --- # Admin, User & Account https://help.cloudfiles.io/hubspot/admin-user-and-account # Admin, User & Account We have compiled all the articles and FAQs related to User and Account topics in this help document. This guide is designed to provide CloudFiles users with easy access to all the support they need in one place. > Kind: Guide · Updated: Jul 8, 2026 We have compiled all the articles and FAQs related to User and Account topics in this help document. This guide is designed to provide CloudFiles users with easy access to all the support they need in one place. Below is a detailed overview of the topics you can explore. ## Table of Contents: ### Users Section - What is an Integration/System user? Learn what an integration/system user is, how it connects with CRMs and cloud storage platforms, and the steps to set it up in CloudFiles. - Inviting Users and Managing Licenses in the CloudFiles App: This section guides you through inviting users to HubSpot using CloudFiles and managing license assignments, both automatic and manual. ### Accounts Section - Doc Management Settings: Document Management settings allow you to connect cloud storage platforms such as Google Drive, SharePoint, OneDrive, Dropbox, and more, manage available libraries, and configure file and folder conflict behaviours such as rename, replace, skip, or fail for when duplicates are encountered during automations. - Doc Sharing Settings: Document Sharing settings allow you to configure how links are created, branded and secured at the account level. This includes enabling cloud storage connections, customising branding with your logo, subdomain or custom domain, setting default link behaviours such as download permissions and expiry, configuring compliance and data consent options and controlling viewer customisation such as login options, theme, and IP tracking. - License & Billing Settings : License & Billing settings provide a centralised place to manage your subscription, including assigning and removing licenses for Document Management and Document Sharing, switching between plans, choosing monthly or annual billing, managing add-on packs and updating payment methods and invoices via Stripe. - Other Account Settings: Other Account Settings covers managing your CloudFiles account information such as account name and connected HubSpot integration, as well as API key management, including the server-side API key and client-side client key used for integrating CloudFiles with your own applications, and the option to permanently delete your account. - What are Automation Credits? Automation credits are units used to measure the execution of CloudFiles workflow actions, where one credit is consumed per flow action executed. This article explains how credits are allocated based on your subscription plan, how they are consumed during workflow executions, and that unused credits do not carry over to the next billing period. --- # User-related https://help.cloudfiles.io/hubspot/user-related # User-related This section covers everything you need to know about managing users in CloudFiles, including integration setup, user registration, license management, role assignments, and user deletion. Below is a brief overview of the topics covered. > Kind: Guide · Updated: Jun 4, 2026 This section covers everything you need to know about managing users in CloudFiles, including integration setup, user registration, license management, role assignments, and user deletion. Below is a brief overview of the topics covered. ## Table of Contents: - What is an Integration/System user?: This article explains how an Integration/System User connects HubSpot with CloudFiles to enable data syncing and automated actions. - Inviting Users and Managing Licenses in the CloudFiles App: This section guides you on inviting users to HubSpot, managing license assignments, and ensuring smooth integration with CloudFiles. --- # What is an Integration/System user? https://help.cloudfiles.io/hubspot/what-is-an-integrationsystem-user # What is an Integration/System user? An Integration User is the account connection that links your HubSpot account with your CloudFiles account, allowing CloudFiles to perform actions within HubSpot. > Kind: Guide · Updated: Jun 4, 2026 An Integration User is the account connection that links your HubSpot account with your CloudFiles account. In CloudFiles documentation, the term Integration User may also refer to a system user who performs actions between HubSpot and CloudFiles.This connection allows CloudFiles to perform actions within your HubSpot environment, such as fetching values from HubSpot fields or updating properties on HubSpot records. ## How to set up an Integration User Follow these steps to connect your HubSpot account with CloudFiles: - Select the product you are using (Document Sharing or Document Generation). - Click the Settings icon in the top-right corner of the screen. - In the left-hand sidebar, select Account. - In the HubSpot Integration section, connect your HubSpot CRM. ![](https://media.help.cloudfiles.io/au-integration-user-hs/01.gif) Once the connection is completed, CloudFiles will be able to execute workflow actions and other automations in HubSpot. > **Note** — Connecting your HubSpot CRM is a mandatory step during the initial setup of CloudFiles. --- # Inviting Users and Managing Licenses in the CloudFiles App https://help.cloudfiles.io/hubspot/inviting-users-and-managing-licenses-in-the-cloudfiles-app # Inviting Users and Managing Licenses in the CloudFiles App This guide walks you through the essential steps so you can easily onboard teammates and keep track of your license usage. > Kind: Guide · Updated: Jun 4, 2026 Inviting new users and managing licenses in the CloudFiles App for HubSpot is straightforward. This guide walks you through the essential steps so you can easily onboard teammates and keep track of your license usage. ## Steps for Inviting Users ### Step 1: Log in to CloudFiles - Open https://hubspot.cloudfiles.io/ and sign in with your credentials. ### Step 2: Open License Management - Click the gear icon at the top-right corner. From the settings panel on the left, select License Management. ### Step 3: Choose Your Product - Select the CloudFiles product you are using, such as Document Management, Document Sharing or Document Generation. You will now see the list of users along with their email, role and license status. ### Step 4: Invite a New User - Click the Invite User button above the table. A dialogue box will open where you can choose New Invites. Enter the email address of the user you want to add and select the role you want to assign. ### Step 5: Send the Invitation - Click Send Invite. The user will receive an email with instructions to join the CloudFiles app. This ensures your team has the right access and your license count stays accurate. If you need further help, CloudFiles Support is always available to assist you. --- # Account-related https://help.cloudfiles.io/hubspot/account-related # Account-related This section provides a comprehensive overview of account-related features in CloudFiles, including automation credits, account management, licensing, billing, and custom branding. Below is a summary of the topics covered. > Kind: Guide · Updated: Jun 4, 2026 This section provides a comprehensive overview of account-related features in CloudFiles, including automation credits, account management, licensing, billing, and custom branding. Below is a summary of the topics covered. ## Table of Contents: - Doc Management Settings: Learn how Document Management settings are used to connect cloud storage accounts and define how files/folders are handled. In this, you can connect supported storage, manage libraries, and set rules for handling duplicate files or folders. - Doc Sharing Settings: Learn how Document Sharing settings allow you to configure links that are created, branded, and secured when sharing files through CloudFiles. These settings apply at the account level, but users can still adjust options at the individual link level if required. - License & Billing Settings: Manage your subscription, view your current plan, update payment details, and access past invoices through the billing page. - Other Account Settings: Learn how to update your account name, manage your primary app connection, such as HubSpot and account deletion, which permanently removes all data and cannot be undone. - What are Automation Credits? : Learn about automation credits, how they are used within workflows, and how many you receive based on your subscription plan. --- # Doc Management Settings https://help.cloudfiles.io/hubspot/doc-management-settings # Doc Management Settings The Document Management settings are used to connect cloud storage accounts and define how files and folders are handled. > Kind: Guide · Updated: Jun 4, 2026 The Document Management settings are used to connect cloud storage accounts and define how files and folders are handled. In this, you can connect supported storage, manage libraries, and set rules for handling duplicate files or folders. ## Integrations The Integrations section shows the cloud storage that CloudFiles supports. From here, you can connect storage like Google Drive, SharePoint, OneDrive, Dropbox, Box, Microsoft Teams, HubSpot, and CloudFiles itself. Each connected storage is linked to an integration or system user. This account is further used by CloudFiles to run automations such as folder creation and organisation. Once connected, you will see: - Connected by – the user who connected the account. - Connected on – the date of connection. You can also disconnect an account from here if needed. ![](https://media.help.cloudfiles.io/au-doc-mgmt-settings-hs/01.png) To know more about integration users and how to connect them, refer to What is an Integration/System user? ## Manage Libraries You can select which libraries to make available. Multiple libraries can be enabled. Each connected storage is associated with an integration user, the account CloudFiles uses to perform various automations. ![](https://media.help.cloudfiles.io/au-doc-mgmt-settings-hs/02.png) ## Conflict Behaviours Conflict behaviours define how CloudFiles handles duplicate files and folders when running automations such as file/folder creation, backup, or organisation. These settings depend on the storage platform you have connected and are divided into two categories: File Conflict Behaviour and Folder Conflict Behaviour. ### File Conflict Behaviour This setting controls what happens when CloudFiles tries to create or upload a file that already exists in the same location. Depending on the platform, CloudFiles may allow you to rename the new file to make it unique, replace the existing file with the new one, keep the existing file unchanged, or stop the process with an error. ### Folder Conflict Behaviour This setting determines how CloudFiles reacts when a folder with the same name already exists. Similar to files, the system may either create a uniquely named folder, keep the existing one unchanged, or stop the operation entirely. ### How Storage Platforms Handle Conflicts? CloudFiles supports four behaviours across different platforms: Rename, Replace, No Op, and Fail. - Rename adds a suffix such as “(1)” to create a unique file or folder name and is supported on all major platforms, including CloudFiles, Google Drive, Dropbox, SharePoint, OneDrive, Box, and Microsoft Teams. - Replace overwrites an existing file and is supported only for files on platforms that allow overwriting, specifically OneDrive, SharePoint, and Microsoft Teams. - No Op skips creation and keeps the existing item unchanged, and is available across all platforms. - Fail stops the action entirely and reports an error, and is also supported wherever the platform allows error-based conflict handling. Folder conflict handling follows a similar pattern, with most platforms supporting Rename, No Op, and Fail, while Replace is not available for folders on any platform. ![](https://media.help.cloudfiles.io/au-doc-mgmt-settings-hs/03.png) --- # Doc Sharing Settings https://help.cloudfiles.io/hubspot/doc-sharing-settings # Doc Sharing Settings The Document Sharing settings allow you to configure how links are created, branded, and secured when sharing files through CloudFiles. > Kind: Guide · Updated: Jun 4, 2026 The Document Sharing settings allow you to configure how links are created, branded, and secured when sharing files through CloudFiles. These settings apply at the account level, but users can still adjust options at the individual link level if required. ## Connection Enable/Disable cloud libraries for sharing, including CloudFiles, Google Drive, SharePoint, OneDrive, Dropbox, Box, Microsoft Teams, and HubSpot. ![](https://media.help.cloudfiles.io/au-doc-sharing-settings-hs/01.png) ## Branding Customise shared links with your website, logo, subdomain, or custom domain. For more information on this, refer to Custom Branding & Domain ![](https://media.help.cloudfiles.io/au-doc-sharing-settings-hs/02.png) ## Link Defaults Default link behaviours can be set here. These include whether links are online or offline, whether viewers are allowed to download files, and if links should expire after a number of views or days. ![](https://media.help.cloudfiles.io/au-doc-sharing-settings-hs/03.png) ## Compliances Collect end-user consent before personal data is shared. Customise the consent statement and link your privacy policy. You can refer to Data Consent and Privacy Notice for a detailed step-by-step guide. ![](https://media.help.cloudfiles.io/au-doc-sharing-settings-hs/04.png) ## Viewer Customisation Control viewer behaviour such as choosing login options (email, Google, Microsoft), setting the theme (light/dark), and enabling IP tracking. ![](https://media.help.cloudfiles.io/au-doc-sharing-settings-hs/05.png) --- # Custom Branding & Domain https://help.cloudfiles.io/hubspot/custom-branding-and-domain # Custom Branding & Domain Learn how to white-label your CloudFiles Document Viewer with your company logo and a custom domain by purchasing an Enterprise license. > Kind: Guide · Updated: Jun 4, 2026 To white-label your CloudFiles Document Viewer with your company logo and custom domain, you'll need to purchase an Enterprise license. This process involves three main steps: ## Accessing the accounts settings page In order to set your custom branding & domain, you need to be logged in with your admin account. This is detailed in the steps given below - - Go to https://app.cloudfiles.io and sign in with your admin email. - Click the Document Sharing tab on the top navigation bar. - From the left sidebar, open Settings and select Document Sharing. Follow the steps shown in the GIF to set up your custom branding and domain. ## Adding logo, favicon & website Once you are in your Document Sharing - Branding page, you can easily set your logo, favicon & website using the steps below - - Select the Branding section from the top bar. - Add your website. - Upload your logo by clicking on the Upload button - Enter your desired sub-domain and confirm. - Your favicon will be automatically pulled from your website. Once you have followed these steps, your CloudFiles previews & links should start showing your favicon & logo. Even your old links would update. For example, if your logo is "iDEMO" and your domain is "idemo.com," so, once you've completed the steps, they will appear as follows: ![](https://media.help.cloudfiles.io/au-custom-branding-hs/01.png) ## CNAME Mapping for custom domain In order to add your custom domain, you first need to map CloudFiles with your DNS provider. This process is called CNAME mapping and is usually handled by IT teams in large organizations. Although the steps may change based on the DNS provider, here are the main steps to be followed. If you are not the IT admin, it is best to get them involved so they can easily understand and implement these - Go to your DNS provider where yourdomain.com DNS is purchased from. - Open the DNS settings - Create a new record with type CNAME - For that record, host = the subdomain name you want. This can be anything that you like, for example - docs, files etc. - For value, add cname.cloudfiles.io - For TTL select 5 minutes. Your new sub-domain will become accessible after this much time. Once the CNAME Mapping is done, you can add the custom domain through the setting provided in the Branding section. Follow the steps below in order to do the same. - Click on the Configure button to initiate the process, this will result in prompting a input to add your custom domain, click Continue once you have added the domain. Refer to the image given below for further explanation. ![](https://media.help.cloudfiles.io/au-custom-branding-hs/02.jpg) - Once you have clicked "Continue", the system will attempt to configure your domain. If the domain is successfully configured you will see "Active" state. You may get "Missing Configuration" state otherwise, as shown in the image below. ![](https://media.help.cloudfiles.io/au-custom-branding-hs/03.jpg) ### How does custom domain affect current links? After the CNAME mapping is completed on our side, your links will update. Your old links will continue to work but won't redirect to the new links. CloudFiles keeps the link slug same but replaces the prefix. E.g. https://cloudfiles/slug will become https://docs.yourdomain.come/slug --- # License & Billing Settings https://help.cloudfiles.io/hubspot/license-and-billing-settings # License & Billing Settings The license & billing pages provide a centralized place to manage your subscription details, including your current plan, payment methods, and license information. > Kind: Guide · Updated: Jun 4, 2026 The license & billing pages provide a centralized place to manage your subscription details, including your current plan, payment methods, and license information. Use this page to review and update your license & billing information as needed. ## Licensing Under License Management, Admin can assign or remove licenses to an user or delete users from CloudFiles. Each product (Document Management/Document Sharing/ Document Generation) shows the user list with email, license status, and role (Admin or User). The page also shows how many licenses are active and how many are available. You can refer to License Management for more information on managing licenses and roles. ![](https://media.help.cloudfiles.io/au-license-billing-settings-hs/01.png) ## Subscriptions View and switch between available plans for Document Management and Document Sharing. Choose monthly or annual billing, and upgrade or downgrade as needed. ![](https://media.help.cloudfiles.io/au-license-billing-settings-hs/02.png) ## Billing The Billing section allows you to manage your Subscription Plans and payment details through Stripe. Here you can view total and active licenses for each product, add-on packs purchased, update your plan, change the billing cycle, or cancel a subscription. The Manage Billing in Stripe option opens Stripe for updating payment methods and invoices. ![](https://media.help.cloudfiles.io/au-license-billing-settings-hs/03.png) --- # Subscription Plans https://help.cloudfiles.io/hubspot/subscription-plans # Subscription Plans Overview of CloudFiles' subscription structure — licenses, products (Doc Management, Doc Sharing, Doc Generation), business/enterprise tiers, and add-on packs — plus user requirements and billing details. > Kind: Guide · Updated: Jun 4, 2026 CloudFiles provides subscription options for it's main products. Each product is available in Business and Enterprise plans, with monthly or annual billing options. Annual as well as bundled billing offers a discounted rate. We also offer Add-On packs to increase limits on various things as per your requirement. To know more about the specific pricing, you can check in the HubSpot Marketplace. or on our Website pricing page. In this article, we first talk about the overall pricing structure, and then dive deeper into the individual plans available for the integration. ## Overall Pricing Structure The CloudFiles HubSpot Integration is priced in a way that you only purchase what you need. The pricing structure is built around a few core concepts. Licenses, Products, Tiers & Add-Ons. ### Licenses Your purchase licenses by deciding the Product(s) and Tier you need. All the purchased licenses will be on the same Product(s) and tier. Only users who will be using CloudFiles functionlaity through HubSpot need a license (i.e. all HubSpot users do not need a license). Each license offers certain number of credits on things like views, automations, datarooms etc... You can extend these limits by using add-on packs that available with bulk as well as annual options. ### Products These include the following products, each with its own exclusive set of functionalities. You can purchase either one of these products, or both of them as a bundle. - Doc Management: Access external storages from HubSpot records. Automate file & folder management processes. This does not include sharing & analytics capabilities available with Doc Sharing product. - Doc Sharing: Share files, folder and datarooms as secure CloudFiles links and collect analytics that can be associated to HubSpot. This does not include external storage connections which is only included with the Doc Management Product. - Doc Generation: Generate on-brand documents using templates built in Microsoft / Google based editors. ### Tiers You can either purchase the products on business or enterprise tiers. There are some advanced functionalities which are exclusive to enterprise plans. For Doc Management this includes automations, supporting very large files, priority support etc... For Doc Sharing this includes automations, custom branding (custom domain is available on business license) etc... Enterprise licenses also offer higher starting limits of things like automation credits, views etc... > Note that automations are only available on enterprise tier. Here are the latest base prices for the above products and tiers. | Product / Tier | Business | Enteprise | |---|---|---| | Doc Management | $ 5 / user / month | $ 15 / user / month | | Doc Sharing | $ 15 / user / month | $ 25 / user / month | | Doc Generation | $ 15 / user / month | $ 25 / user / month | ### Add-Ons Each license offers certain number of credits on things like views, automations, datarooms etc... E.g. the Doc Management Enteprise license offers 150 automation credits / license / mo by default. You can extend these limits by using add-on packs that are available with bulk as well as annual options. ### Automation Pack | Plan | Price/month | Automations/month | |---|---|---| | Small Pack | $10 | 100 | | Medium Pack | $75 | 1,000 | | Large Pack | $500 | 10,000 | ### Document Sharing Pack | Plan | Price/ month | Views/ month | Tracked emails/ month | Datarooms/ month | |---|---|---|---|---| | Small Pack | $10 | 1,000 | 100 | 25 | | Medium Pack | $75 | 10,000 | 1,000 | 250 | | Large Pack | $500 | 100,000 | 10,000 | 2500 | ### Document Generation Pack | Plan | Price/ month | Documents/ month | |---|---|---| | Small Pack | $10 | 100 | | Medium Pack | $75 | 1,000 | | Large Pack | $500 | 10,000 | Monthly packs offer credits that expire after a month. If you are unsure about your usage, you should instead purchase annual packs. Credits from annual packs expire after an year. Annual packs come with 2 discounted months. E.g. the annual small pack will cost $100 / year with 1200 automation credits that will expire after the year. Similarly, a large annual pack gives you 30,000 datarooms and 1.2 million file views at $5,000 / year. > Please note- each add-on requires its corresponding base product to be active on the account. ## User Requirements and Billing There is no minimum user requirement for any plan. Subscriptions can be started with a single license, and the number of licenses can be changed at any time. Plans can also be switched after purchase if requirements evolve. Both Document Management and Document Sharing subscriptions can be billed monthly or annually, and all payments are securely processed through Stripe. Thus, CloudFiles offers flexibility across both document management and document sharing needs. Business plans provide essential features for everyday use, while Enterprise plans extend those capabilities with automation, advanced controls, and higher allowances. --- # Other Account Settings https://help.cloudfiles.io/hubspot/other-account-settings # Other Account Settings The Account Information section allows you to manage your personal CloudFiles account settings, view your connected HubSpot integration, and take actions related to your account. > Kind: Guide · Updated: Jun 4, 2026 ## Account Information The Account Information section allows you to manage your personal CloudFiles account settings, view your connected HubSpot integration, and take actions related to your account. ### Account Name This field displays the current name associated with your CloudFiles account. You can update it at any time to reflect the name you want shown across your workspace. After making changes, click Save to apply the update. ### HubSpot Integration This section shows the primary HubSpot account connected to CloudFiles. It includes the email address used for the integration and provides a Reconnect option in case you need to reauthorize or refresh the connection. This integration ensures syncing and interaction between CloudFiles and your HubSpot environment. ### Delete Account This option allows you to permanently delete your CloudFiles account along with all associated data. Deleting your account is irreversible and removes all stored files, settings, and integrations. Use this action only if you no longer need access to CloudFiles. ![](https://media.help.cloudfiles.io/au-other-account-settings-hs/01.png) ## API Keys The API Keys section allows you to manage the credentials required to integrate CloudFiles with your own applications. These keys provide secure programmatic access to CloudFiles features and are used when building server-side or client-side integrations. Each key serves a different purpose, ensuring that you can authenticate safely depending on the type of application you are developing. ### API Key The API Key is used for server-side integrations. It allows your backend systems to communicate securely with CloudFiles APIs. This key should always be kept private, stored securely, and never exposed in public code or browser environments. ### Client Key The Client Key is designed for client-side integrations, such as using the CloudFiles JavaScript SDK in web applications. Unlike the server-side key, this key is safe to use in public-facing applications because it has limited permissions appropriate for front-end usage. Refer to API documentation for more information. ![](https://media.help.cloudfiles.io/au-other-account-settings-hs/02.png) --- # Working with Multiple CloudFiles Accounts https://help.cloudfiles.io/hubspot/working-with-multiple-cloudfiles-accounts # Working with Multiple CloudFiles Accounts Learn how to sign in, switch between, create, and manage multiple CloudFiles accounts. > Kind: Guide · Updated: Jun 4, 2026 CloudFiles is built for being the external file sharing service for your entire team. However, with a greater number of files and team size, comes difficulty in managing everything seamlessly. Hence, file organization on your part becomes very important. So, let's learn to work with multiple CloudFiles accounts. ## Signing to a CloudFiles Account If you have multiple accounts within CloudFiles, follow the upcoming steps to work with them seamlessly - - Sign in to CloudFiles using your email ID using https://auth.cloudfiles.io/ - Choose the account you wish to work with on the next screen. The account selection screen is shown in the GIF below. ## Switching CloudFiles Account If you are already signed into a CloudFiles Account and wish to switch to another account, you have to sign out from the particular CloudFiles account and follow the steps mentioned above. ## Creating a New Account In order to create a new account, log out from your existing account and click on "Sign up" under "Don't have an account?" and then select CloudFiles Webapp. Fill in the required details and a new accpunt will be created. ## Setting Account Name Sign in to the CloudFiles account where you are the Admin. Go to Settings and then choose account, select Edit and update the name of your CloudFiles account. --- # Permanently Delete Your Account https://help.cloudfiles.io/hubspot/permanently-delete-your-account # Permanently Delete Your Account Deleting a CloudFiles account is a permanent action that removes all files, links, and analytics associated with the account. > Kind: Guide · Updated: Jun 4, 2026 Deleting a CloudFiles account is a permanent action that removes all files, links, and analytics associated with the account. Only an Admin can perform this action. To delete an account, log in to the CloudFiles app, go to settings, select the "Account" sidebar, and click "Delete Account" button as shown below. Enter the confirmation code and click "Remove." ![](https://media.help.cloudfiles.io/au-permanently-delete-hs/01.png) --- # What are Automation Credits? https://help.cloudfiles.io/hubspot/what-are-automation-credits # What are Automation Credits? Automation credits are units used to measure the execution of CloudFiles Workflow Actions, with one credit consumed per flowaction performed. > Kind: Guide · Updated: Jun 4, 2026 Automation credits are units used to measure the execution of CloudFiles Workflow Actions. One credit is used each time you perform a flowaction. For instance, if your workflow includes four flowactions, running the workflow once will use up four credits. Every execution of a flowaction consumes one credit, and unused credits do not carry over to the next period. ## How many automation credits do I get? The number of automation credits varies based on your subscription plan. Automation credits increase with each level: Pro, Business, and then Enterprise licenses. To know about the number of automation credits included in each plan you can visit the HubSpot Marketplace. Here’s an example to illustrate how automation credits are used: For example, if you have a Pro license with 10 users and each user receives 100 automation credits per month, your total for the month is 1,000 credits. As the admin, if you run a workflow that uses 10 CloudFiles flowactions for the first time, 10 credits will be consumed during this execution. After running the workflow, you will have 990 credits remaining for the month. In summary, automation credits are used to track the execution of flowactions in your workflows. The amount of credits you have depends on your subscription plan, and they are used according to the number of flowactions performed. --- ## Storage Integrations --- # External Storage / Library Configuration https://help.cloudfiles.io/salesforce/external-storage-library-configuration # External Storage / Library Configuration CloudFiles allows seamless integration with multiple external storage providers, enabling users to store, access, and manage files within Salesforce. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles allows seamless integration with multiple external storage providers, enabling users to store, access, and manage files within Salesforce. This section guides you through setting up and managing external storage libraries. ## Getting Started Once your CloudFiles account is set up, you will land on the Home Tab. ![](https://media.help.cloudfiles.io/dms-external-storage-library-configuration-sf/01.png) Follow these steps to configure your storage libraries: - Navigate to the "Document Management" tab – This is where you access all CloudFiles settings. - Click "Start Trial" if you don't have a subscription yet. ![](https://media.help.cloudfiles.io/dms-external-storage-library-configuration-sf/02.png) - Select libraries to work with – Click "+" to add libraries and proceed with the setup. ![](https://media.help.cloudfiles.io/dms-external-storage-library-configuration-sf/03.png) - Setup Home – Explore quick setup guides and resources. ![](https://media.help.cloudfiles.io/dms-external-storage-library-configuration-sf/04.png) - Manage Libraries – Use the sidebar to connect new libraries or modify existing ones. ![](https://media.help.cloudfiles.io/dms-external-storage-library-configuration-sf/05.png) - Library-Specific Configuration – Once a library is connected, additional configurations based on the storage provider will be required. ## Supported Storage Libraries CloudFiles supports a wide range of external storage providers: - SharePoint - Google Drive - OneDrive - AWS - S3 - Azure Blob - MS Teams - Box - Dropbox - SFTP Library - Azure Files Each library has specific configuration steps and settings, which are detailed in their respective subsections. --- # SharePoint https://help.cloudfiles.io/salesforce/sharepoint # SharePoint The Integration User allows you to connect an account-level SharePoint account, which is used for automations like file backup and organization. > Kind: Guide · Updated: Jul 4, 2026 The SharePoint tab under Manage Libraries controls how CloudFiles authenticates with your SharePoint tenant, how file and folder conflicts are handled, which sites are available for use, and which advanced SharePoint REST APIs CloudFiles can call. CloudFiles supports two authentication methods for SharePoint - Integration User and Service Principal. Only one method is active for automations at any given time. | Method | What it uses | Best for | |---|---|---| | Integration User | A real Microsoft user account in your tenant | Fastest way to get started. Works well for teams that already have a dedicated integration account and are comfortable managing MFA, license, and password policies on it. | | Service Principal | The CloudFiles app registered in your Microsoft tenant, approved once by a Global Administrator | Long-running, reliable connections. No user account, no license consumed, no risk of the connection breaking due to MFA prompts, password rotation, or user offboarding. | See also: for a conceptual deep-dive on choosing between the two authentication methods, see SharePoint Connection Methods: Integration User vs Service Principal. ## Integration User The Integration User allows you to connect an account-level SharePoint account, which is used for automations like file backup and organization. To configure, follow the steps below - - Navigate to the "Libraries" page and access the SharePoint section on the canvas. - Under "Integration User," click the Connect button. - Log in to the Microsoft account associated with SharePoint, or select the account if already logged in. - Once connected, the username and connection date will be displayed under "Integration User." - To change the Integration User, use the Disconnect option and repeat the process. ![](https://media.help.cloudfiles.io/dms-sharepoint-sf/01.gif) ## Service Principal With service principal, CloudFiles authenticates as the CloudFiles app already registered in your Microsoft tenant. A Global Administrator approves app-level permissions once, and the connection then runs without a user account, license, MFA prompt, or password rotation risk. The setup happens in three parts: the Salesforce admin generates a setup link, a Microsoft Global Administrator approves the permissions using that link, and the Salesforce admin then activates service principal for automations. - Under Service principal, click Setup. The status shows Not configured until this step is completed. - In the Tenant URL field, enter your SharePoint tenant URL (for example, https://cloudfileswork.sharepoint.com). - Click Generate. CloudFiles generates a setup link and the status changes to Awaiting admin consent. The setup link is active for 7 days. - Copy the setup link and share it with your Microsoft Global Administrator. This admin is often not a Salesforce user, which is why the link is shareable and does not require a CloudFiles or Salesforce login. - Ask the admin to open the link and approve the permissions requested for the CloudFiles app. Once approved, the status on the SharePoint tab changes to Consent granted. - Return to the SharePoint tab and click Switch automations to service principal. ## Conflict Behaviors Specify how the system should handle duplicate files or folders during operations in SharePoint: - File Conflict Behavior: Options include Rename, Replace, No Op, or Fail. - Folder Conflict Behavior: Options include No Op, Rename, or Fail. ## Register Sites This option is only needed if you wish to restrict which sites are displayed and available for use. Only registered SharePoint sites will be accessible for users connecting their SharePoint account with CloudFiles. To register a site: - Click the Register button under the "Register Sites" section. - In the popup window, paste the URL of the SharePoint site (e.g., https://cloudfileswork.sharepoint.com/sites/Demo1) and click Register. - The registered sites will appear as a list in the same section. - To remove a site, click the delete icon next to it and confirm the action in the "Remove Site" popup. ![](https://media.help.cloudfiles.io/dms-sharepoint-sf/02.png) ## SharePoint Rest API Authorization This authorization is necessary for advanced functionalities such as site creation and property searches within flows. To connect: - In the Tenant URL box, paste the URL of the SharePoint (e.g., https://cloudfileswork.sharepoint.com) and click Connect. - Log in to the Microsoft account associated with SharePoint, or select the account if already logged in. - Accept the Permissions requested by clicking "Accept" - The authorized Tenant URL along with the username and connection date will be displayed under the same section. - To deauthorize, simply click the Disconnect button. ![](https://media.help.cloudfiles.io/dms-sharepoint-sf/03.gif) --- # Google Drive https://help.cloudfiles.io/salesforce/google-drive # Google Drive The Integration User allows you to connect an account-level Google Drive User account, which is used for automations like file backup and organization. > Kind: Guide · Updated: Jul 4, 2026 ## Integration User The Integration User allows you to connect an account-level Google Drive User account, which is used for automations like file backup and organization. To configure, follow the steps below - - Navigate to the "Libraries" page and access the Google Drive section on the canvas. - Under "Integration User," click the Connect button. - Log in to the Google account associated with user, or select the account if already logged in. - Once connected, the username and connection date will be displayed under "Integration User." - To change the Integration User, use the Disconnect option and repeat the process. ![](https://media.help.cloudfiles.io/dms-google-drive-sf/01.gif) --- # OneDrive https://help.cloudfiles.io/salesforce/onedrive # OneDrive The Integration User allows you to connect an account-level OneDrive User account, which is used for automations like file backup and organization. > Kind: Guide · Updated: Jul 4, 2026 ## Integration User The Integration User allows you to connect an account-level OneDrive User account, which is used for automations like file backup and organization. To configure, follow the steps below - - Navigate to the "Libraries" page and access the OneDrive section on the canvas. - Under "Integration User," click the Connect button. - Log in to the Microsoft account associated with user, or select the account if already logged in. - Once connected, the username and connection date will be displayed under "Integration User." - To change the Integration User, use the Disconnect option and repeat the process. ![](https://media.help.cloudfiles.io/dms-onedrive-sf/01.gif) ## Conflict Behaviors Specify how the system should handle duplicate files or folders during operations in OneDrive: - File Conflict Behavior: Options include Rename, Replace, No Op, or Fail. - Folder Conflict Behavior: Options include No Op, Rename, or Fail. ![](https://media.help.cloudfiles.io/dms-onedrive-sf/02.png) --- # AWS - S3 https://help.cloudfiles.io/salesforce/aws-s3 # AWS - S3 This guide walks through connecting your AWS S3 bucket to CloudFiles by creating a CloudFormation stack and linking it back to CloudFiles. > Kind: Guide · Updated: Jul 4, 2026 This guide will walk you through the process of connecting your AWS S3 bucket to CloudFiles. By the end of this guide, you will have created a new stack in CloudFormation and obtained the necessary details to successfully link your S3 bucket to CloudFiles. > **Prerequisites** — You need an active AWS account and an S3 bucket for integration. Ensure that you have already created the required S3 bucket in your account before proceeding with the following steps. ## 1 - Enter bucket name in CloudFiles - Head over to the CloudFiles app in Salesforce and navigate to the Document Management tab -> Libraries, and click on AWS S3. If you don't see the AWS S3 option at the top of the page, click on 'Manage Libraries' and add the library. - Click on 'Connect' and enter your S3 bucket name, and continue. ![](https://media.help.cloudfiles.io/dms-aws-s3-sf/01.png) ![](https://media.help.cloudfiles.io/dms-aws-s3-sf/02.png) ## 2- Download the CloudFormation Template - Note down the External ID and download the CloudFormation template that is generated. Head over to the AWS Management Console after this step. ![](https://media.help.cloudfiles.io/dms-aws-s3-sf/03.png) ## 3 - Access AWS CloudFormation - In the AWS Management Console, search for and select 'CloudFormation'. ## 4 - Create a New Stack - Click on “Create stack” and select “With new resources (standard)”. - Choose “Template is ready” under the “Prepare template” options. ## 5 - Upload the CloudFormation Template - Select “Upload a template file”. - Click on “Choose file” and upload the CloudFormation template that you downloaded in step 2. - Click “Next”. ## 6 - Specify Stack Details - Enter a name for your stack. For example, “CloudFilesS3Integration”. - Fill in any parameters required by the template, if applicable. - Click “Next”. ## 7 - Configure Stack Options (Optional) - Configure any additional options like tags or permissions if necessary. - Click “Next”. ## 8 - Review and Create the Stack - Review all settings and details. Make sure everything is correct. - Acknowledge that AWS CloudFormation might create IAM resources. - Click “Create stack”. ## 9 - Wait for Stack Creation - The stack creation process might take a few minutes. Wait until the status changes to “CREATE_COMPLETE”. ## 10 - Obtain the Outputs - Once the stack creation is complete, go to the “Outputs” tab of your stack. - Note down the ‘Role ARN’ value. This will be essential for connecting your S3 bucket to CloudFiles. ## 11 - Enter Details in CloudFiles - Head back to the libraries screen in CloudFiles app (where you left off in step 2) to enter the rest of the details. - Enter the ‘Role ARN’ you noted down in the previous step. - (Optional) Enter a 'Prefix': The Prefix defines the folder path within your S3 bucket that CloudFiles will use. This allows you to organize data within a single section of the bucket instead of using the entire bucket. When connecting a bucket for the first time, you can choose any prefix. If you reuse an existing bucket in another org, each connection must use a unique, non-overlapping prefix to prevent conflicts. For example, team-a/ and team-b/ are valid, but team-a/ and team-a/subfolder/ are not. - Enter the Drive Label: The Drive Label is the display name for the storage connection in CloudFiles. This label is what users will see in the UI when accessing or selecting a storage location, making it easier to identify and distinguish between multiple connected drives. It is optional for the first bucket connected in the org but required for any additional connections to ensure each drive can be easily identified. - Save your settings. > **Note** — A prefix is mandatory every time you connect the same bucket more than once, whether within the same org or across different orgs — this ensures paths do not overlap. If you are connecting the same bucket a second time within the same org, both the original and the new connection must have a prefix, so if the first connection was made without one, disconnect it and reconnect with a prefix before adding the second.A drive label is mandatory from the second bucket onward within the same org, regardless of whether the buckets are the same or different. After entering the details in CloudFiles, your S3 bucket should now be successfully connected to your CloudFiles account. You can start managing and accessing your S3 files directly through CloudFiles. > **Note** — If the bucket is already connected, you will get the 'Reuse Existing Connection' option at this stage and can connect the same bucket again with a different non-overlapping prefix. ![](https://media.help.cloudfiles.io/dms-aws-s3-sf/04.png) ## 12 - Enable Sync (Optional) - Turn on Enable Sync to automatically sync changes between your S3 bucket and CloudFiles. - Once enabled, any files or folders that are uploaded, updated, or deleted in S3 will be reflected in CloudFiles. > **Note** — Sync only applies to changes made after the toggle is enabled. Existing files in your S3 bucket will not appear automatically in CloudFiles. To make historical data available, a custom (paid) migration is required. Please contact support@cloudfiles.io for more details. If your S3 bucket was connected before the automated sync setup was introduced, enabling sync may require updating the IAM role permissions first. See How to enable Auto Sync for old S3 buckets connected in CloudFiles for steps. ## Column Configuration for S3 Library You can customize the columns displayed in widgets through the Library Configuration tab in Document Management for S3. Refer to the images below for visual understanding. ![](https://media.help.cloudfiles.io/dms-aws-s3-sf/05.png) ![](https://media.help.cloudfiles.io/dms-aws-s3-sf/06.png) ## Disconnect AWS S3 buckets Users can disconnect S3 Buckets directly from the Salesforce app. This action will remove the storage connection along with any associated metadata within the app. ![](https://media.help.cloudfiles.io/dms-aws-s3-sf/07.png) ![](https://media.help.cloudfiles.io/dms-aws-s3-sf/08.png) --- # Azure Blob https://help.cloudfiles.io/salesforce/azure-blob # Azure Blob Step-by-step guide to connect an Azure Blob storage container with CloudFiles, covering app registration, storage account and container setup, CORS/IAM configuration, connecting the drive in CloudFiles, enabling sync, and column configuration. > Kind: Guide · Updated: Jul 4, 2026 Here's a step-by-step guide to help you connect your Azure blob storage container with CloudFiles. ## 1 - Add CloudFiles Application - Search for CloudFiles in Microsoft Entra Gallery. - Click on CloudFiles and click "Create" to add an instance of CloudFiles application in your Azure portal ![](https://media.help.cloudfiles.io/dms-azure-blob-sf/01.png) If the above doesn't work for you, alternatively you can click the button below to authorize CloudFiles. This will add CloudFiles automatically to your enterprise applications list. ## 2 - Create a Storage Account - Navigate to Azure Portal - Log in to your Azure portal. - Create a New Storage Account - Go to the 'Storage accounts' section and click on 'Add' to create a new storage account. - Configure the Storage Account - Follow the on-screen instructions to configure your storage account, selecting the appropriate subscription, resource group, and other relevant settings. ## 3 - Create a Container in Storage Account - Open Storage Account - Once the storage account is created, open it. - Create Container - In the storage account dashboard, locate the 'Containers' section and create a new container. Assign a name and set the access to Private (no anonymous access) ## 4 - Update Storage Account Access Control Add Storage Blob Delegator Permission - In the storage account settings, go to Access Control (IAM). Create a new Role Assignment. Select the role: "Storage Blob Delegator". On Members screen, search for "CloudFiles" service principal. ## 5 - Update Container Access Control Add Storage Blob Data Contributor Permission - In the container settings, go to Access Control (IAM). Create a new Role Assignment. Select the role: "Storage Blob Data Contributor". On Members screen, search for "CloudFiles" service principal. ## 6 - Configure Azure Storage in CloudFiles - Open CloudFiles Setup in Salesforce: Log into your Salesforce account and navigate to the CloudFiles app launcher. Go to libraries section in Document Management app, select Azure Blob. - Enter the 'Storage Account Name' and 'Container Name' - (Optional) Enter 'Prefix': The Prefix defines the folder path within your azure container that CloudFiles will use. This allows you to organize data within a single section of the container instead of using the entire container. When connecting a container for the first time, you can choose any prefix. If you reuse an existing container in another org, each connection must use a unique, non-overlapping prefix to prevent conflicts. For example, team-a/ and team-b/ are valid, but team-a/ and team-a/subfolder/ are not. - Enter 'Drive Label': The Drive Label is the display name for the storage connection in CloudFiles. This label is what users will see in the UI when accessing or selecting a storage location, making it easier to identify and distinguish between multiple connected drives. It is optional for the first container connected in the org but required for any additional connections to ensure each drive can be easily identified. - Connect > **Note** — A prefix is mandatory every time you connect the same container more than once, whether within the same org or across different orgs — this ensures paths do not overlap. If you are connecting the same container a second time within the same org, both the original and the new connection must have a prefix, so if the first connection was made without one, disconnect it and reconnect with a prefix before adding the second.A drive label is mandatory from the second container onward within the same org, regardless of whether the containers are the same or different. ![](https://media.help.cloudfiles.io/dms-azure-blob-sf/03.png) ## 7 - Enable auto sync in Azure (Optional) - If you wish to have a 2 way sync to view your files in Azure through the CloudFiles widget, please follow the steps mentioned in How to enable auto-sync on Azure Blob ## 8 - Enable Sync in CloudFiles - Turn on Enable Sync to automatically sync changes between your azure container and CloudFiles. (Completing step 8 is mandatory if you wish to turn this toggle on) - Once enabled, any files or folders that are uploaded, updated, or deleted in azure will be reflected in CloudFiles. > **Note** — Sync only applies to changes made after the toggle is enabled. Existing files in your azure container will not appear automatically in CloudFiles. To make historical data available, a custom (paid) migration is required. Please contact support@cloudfiles.io for more details. ![](https://media.help.cloudfiles.io/dms-azure-blob-sf/04.png) ## Column Configuration for Azure You can customize the columns displayed in widgets through the Library Configuration tab in Document Management for Azure. Refer to the images for visual understanding. > **Note** — Custom Azure columns can only be created and managed in the CloudFiles app. You can view and update these column values in the CloudFiles Content Library or CloudFiles widget. They are not available in Azure Blob Storage, so you cannot view or edit them directly there. ![](https://media.help.cloudfiles.io/dms-azure-blob-sf/05.png) ![](https://media.help.cloudfiles.io/dms-azure-blob-sf/06.png) ![](https://media.help.cloudfiles.io/dms-azure-blob-sf/07.png) ## Disconnect Azure Containers Users can disconnect Azure Containers directly from the Salesforce app. This action will remove the storage connection along with any associated metadata within the app. --- # MS Teams https://help.cloudfiles.io/salesforce/ms-teams # MS Teams Configure the account-level MS Teams Integration User and set conflict behaviors for duplicate files or folders during MS Teams operations. > Kind: Guide · Updated: Jul 4, 2026 ## Integration User The Integration User allows you to connect an account-level MS Teams User account, which is used for automations like file backup and organization. To configure, follow the steps below - - Navigate to the "Libraries" page and access the MS Teams section on the canvas. - Under "Integration User," click the Connect button. - Log in to the Microsoft account associated with user, or select the account if already logged in. - Once connected, the username and connection date will be displayed under "Integration User." - To change the Integration User, use the Disconnect option and repeat the process. ![](https://media.help.cloudfiles.io/dms-ms-teams-sf/01.gif) ## Conflict Behaviors Specify how the system should handle duplicate files or folders during operations in MS Teams: - File Conflict Behavior: Options include Rename, Replace, No Op, or Fail. - Folder Conflict Behavior: Options include No Op, Rename, or Fail. ![](https://media.help.cloudfiles.io/dms-ms-teams-sf/02.png) --- # Box https://help.cloudfiles.io/salesforce/box # Box The Integration User allows you to connect an account-level Box User account, which is used for automations like file backup and organization. > Kind: Guide · Updated: Jul 4, 2026 ## Integration User The Integration User allows you to connect an account-level Box User account, which is used for automations like file backup and organization. To configure, follow the steps below - - Navigate to the "Libraries" page and access the Box section on the canvas. - Under "Integration User," click the Connect button. - Log in to the Box account associated with user, or select the account if already logged in. - Once connected, the username and connection date will be displayed under "Integration User." - To change the Integration User, use the Disconnect option and repeat the process. ![](https://media.help.cloudfiles.io/dms-box-sf/01.gif) ## Conflict Behaviors Specify how the system should handle duplicate files or folders during operations in Box: - File Conflict Behavior: Options include Replace, No Op, or Fail. - Folder Conflict Behavior: Option include No Op. ![](https://media.help.cloudfiles.io/dms-box-sf/02.png) --- # Dropbox https://help.cloudfiles.io/salesforce/dropbox # Dropbox The Integration User allows you to connect an account-level Dropbox User account, which is used for automations like file backup and organization. > Kind: Guide · Updated: Jul 4, 2026 ## Integration User The Integration User allows you to connect an account-level Dropbox User account, which is used for automations like file backup and organization. To configure, follow the steps below - - Navigate to the "Libraries" page and access the Dropbox section on the canvas. - Under "Integration User," click the Connect button. - Log in to the Dropbox account associated with user, or select the account if already logged in. - Once connected, the username and connection date will be displayed under "Integration User." - To change the Integration User, use the Disconnect option and repeat the process. ![](https://media.help.cloudfiles.io/dms-dropbox-sf/01.gif) ## Conflict Behaviors Specify how the system should handle duplicate files or folders during operations in Dropbox: - File Conflict Behavior: Options include Rename. - Folder Conflict Behavior: Options include No Op, Rename, or Fail. ![](https://media.help.cloudfiles.io/dms-dropbox-sf/02.png) --- # SFTP Library https://help.cloudfiles.io/salesforce/sftp-library # SFTP Library Follow the steps below to add an SFTP library. > Kind: Guide · Updated: Jul 4, 2026 Follow the steps below to add an SFTP library - Navigate to Document Management Settings: Go to CloudFiles App > Document Management > Configuration > External Storages. Access the Libraries Tab Click on the Libraries tab. Add New SFTP Library Select the option to add a new library and choose SFTP as the library type. ![](https://media.help.cloudfiles.io/dms-sftp-library-sf/01.png) Enter SFTP Details: Provide the following information: - Host - The address of your SFTP server. - Port - The specific port number used for the SFTP connection. - Username - Your SFTP account username. ![](https://media.help.cloudfiles.io/dms-sftp-library-sf/02.png) Save and Connect: Click Save to establish the connection. ![](https://media.help.cloudfiles.io/dms-sftp-library-sf/03.png) --- # Azure Files https://help.cloudfiles.io/salesforce/azure-files # Azure Files This article shows how to connect an Azure Files share to CloudFiles so you can browse, manage, and share files from your Azure storage directly within Salesforce. > Kind: Guide · Updated: Jul 4, 2026 This article shows how to connect an Azure Files share to CloudFiles so you can browse, manage, and share files from your Azure storage directly within Salesforce. ## 1 - Retrieve your Connection String from Azure Portal - In the Azure Portal, open your Storage Account. - Go to Security + Networking > Access keys. - Copy either key1 or key2 connection string. - Note: The connection string must use HTTPS. Strings using HTTP are not accepted. ![](https://media.help.cloudfiles.io/dms-azure-files-sf/01.png) ## 2 - Retrieve your Share Name from Azure Portal. - In the Azure Portal, open your Storage Account. - Go to Data storage > File shares. - Copy the name of the file share you want to connect. ![](https://media.help.cloudfiles.io/dms-azure-files-sf/02.png) ## 3 - Add details in CloudFiles libraries - In Salesforce, open the CloudFiles app and navigate to Document Management > Libraries. If Azure Files is not already visible in your library list, click on Manage Libraries and add it. - Then click on Azure Files to open its configuration page. - Enter the Connection String and Share Name in the configuration screen. - Click on Connect. CloudFiles will validate your credentials before saving. If the connection string or share name is invalid, an error will be shown and the connection will not be saved. ![](https://media.help.cloudfiles.io/dms-azure-files-sf/03.png) ![](https://media.help.cloudfiles.io/dms-azure-files-sf/04.png) > **Supported actions** — The following actions are available for files and folders in Azure Files:Browse, upload, download, rename, move, and delete files and foldersCreate new files and foldersCopy files across librariesShare links for filesFile preview for PDFs > **Known limitations** — Search is not supported. Azure Files natively supports only prefix-based search. Full-text or keyword search is unavailable.Non-PDF file preview is not supported. Files in formats such as DOCX and PPTX cannot be previewed inline.Open in App is not available for files stored in Azure Files.File replace is not supported. To update a file, delete the existing version and upload the new one. ## Disconnect Azure Files To remove an Azure Files connection, open Document Management > Libraries, select the Azure Files library, and use the disconnect option. This will remove the storage connection and all associated metadata from the CloudFiles app. --- ## REST API --- # Authentication https://help.cloudfiles.io/docs/api-authentication/ # Authentication Authenticate CloudFiles REST API calls with a Bearer API key, and where to find your key in Salesforce and HubSpot. > Kind: REST endpoint · Updated: Mar 9, 2026 ## Authentication To make calls to CloudFiles APIs, include your API key in the authorization header: ```bash curl --header "Authorization: Bearer ****************************************" https://api.cloudfiles.io/v1/attachments?objectId=1&objectType=CONTACT ``` ## Finding your API key You can find your API key using the following steps. ### Salesforce For Salesforce, you can find your API key on the CloudFiles Settings page. Navigate to the Salesforce App Launcher, search for “CloudFiles”, click on the “Settings” tab, and navigate to “API Keys” on the left. Refer to the screenshot below. ![CloudFiles Settings page in Salesforce showing the API Keys tab](https://media.help.cloudfiles.io/api-authentication/salesforce-api-key.png) ### HubSpot For HubSpot, navigate to the settings (⚙️) icon on the top right. Then, navigate to “API Keys” on the left. Refer to the screenshot below. ![CloudFiles API Keys screen in HubSpot](https://media.help.cloudfiles.io/api-authentication/hubspot-api-key.png) --- # Create Link (REST Endpoint) https://help.cloudfiles.io/docs/api-create-update-link/ # Create Link Create a shareable link for a file or folder. You can configure access settings such as expiration date, download permissions, password protection, and allowed/blocked users. > Kind: REST endpoint · Updated: Mar 6, 2026 · POST /v1/links Create a shareable link for a file or folder. You can configure access settings such as expiration date, download permissions, password protection, and allowed/blocked users. ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Request body ```json { "name": "test link", "resource": "{{resource-id}}", "resourceType": "folder", "settings": { "isActive": true, "allowDownloading": true, "expireAt": 1728698842000, "maxViews": 1000, "requirePassword": false, "password": "", "requireEmail": false, "enableEmailVerification": false, "allowedEmails": [], "allowedDomains": [], "blockedEmails": [], "blockedDomains": [] } } ``` ## Example request **cURL** ```bash curl --request POST \ --url 'https://api.cloudfiles.io/v1/links?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'authorization: Bearer API_Key' \ --data '"{\n \"name\": \"test link\",\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"settings\": {\n \"isActive\": true,\n \"allowDownloading\": true,\n \"expireAt\": 1728698842000,\n \"maxViews\": 1000,\n \"requirePassword\": false,\n \"password\": \"\",\n \"requireEmail\": false,\n \"enableEmailVerification\": false,\n \"allowedEmails\": [],\n \"allowedDomains\": [],\n \"blockedEmails\": [],\n \"blockedDomains\": []\n }\n}"' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var raw = JSON.stringify("{\n \"name\": \"test link\",\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"settings\": {\n \"isActive\": true,\n \"allowDownloading\": true,\n \"expireAt\": 1728698842000,\n \"maxViews\": 1000,\n \"requirePassword\": false,\n \"password\": \"\",\n \"requireEmail\": false,\n \"enableEmailVerification\": false,\n \"allowedEmails\": [],\n \"allowedDomains\": [],\n \"blockedEmails\": [],\n \"blockedDomains\": []\n }\n}"); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/links?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/links?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" request.body = JSON.dump("{\n \"name\": \"test link\",\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"settings\": {\n \"isActive\": true,\n \"allowDownloading\": true,\n \"expireAt\": 1728698842000,\n \"maxViews\": 1000,\n \"requirePassword\": false,\n \"password\": \"\",\n \"requireEmail\": false,\n \"enableEmailVerification\": false,\n \"allowedEmails\": [],\n \"allowedDomains\": [],\n \"blockedEmails\": [],\n \"blockedDomains\": []\n }\n}") response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/links?library=string&driveId=string" payload = json.dumps("{\n \"name\": \"test link\",\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"settings\": {\n \"isActive\": true,\n \"allowDownloading\": true,\n \"expireAt\": 1728698842000,\n \"maxViews\": 1000,\n \"requirePassword\": false,\n \"password\": \"\",\n \"requireEmail\": false,\n \"enableEmailVerification\": false,\n \"allowedEmails\": [],\n \"allowedDomains\": [],\n \"blockedEmails\": [],\n \"blockedDomains\": []\n }\n}") headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) ``` ## Response body ```json { "id": "lnk_123", "name": "Q3 Deck", "url": "https://share.cloudfiles.io/a1b2c3", "hash": "a1b2c3", "createdAt": "2026-07-09T10:00:00Z", "createdBy": "usr_1", "updatedAt": "2026-07-09T10:00:00Z" } ``` --- # Create Folder (REST Endpoint) https://help.cloudfiles.io/docs/api-create-folder/ # Create Folder Create a new folder within any storage under a specified parent folder. This API helps organize folders and maintain structured hierarchy. > Kind: REST endpoint · Updated: Mar 6, 2026 · POST /v1/folders Create a new folder within any storage under a specified parent folder. This API helps organize folders and maintain structured hierarchy. ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Request body ```json { "parent": "{{parent-folder-id}}", "name": "CloudFiles From API" } ``` ## Example request **cURL** ```bash curl --request POST \ --url 'https://api.cloudfiles.io/v1/folders?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'authorization: Bearer API_Key' \ --data '"{\n \"parent\": \"{{parent-folder-id}}\",\n \"name\": \"CloudFiles From API\"\n}"' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var raw = JSON.stringify("{\n \"parent\": \"{{parent-folder-id}}\",\n \"name\": \"CloudFiles From API\"\n}"); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/folders?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/folders?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" request.body = JSON.dump("{\n \"parent\": \"{{parent-folder-id}}\",\n \"name\": \"CloudFiles From API\"\n}") response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/folders?library=string&driveId=string" payload = json.dumps("{\n \"parent\": \"{{parent-folder-id}}\",\n \"name\": \"CloudFiles From API\"\n}") headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) ``` ## Response body ```json { "id": "fld_123" } ``` --- # Rename Folder https://help.cloudfiles.io/docs/api-rename-folder/ # Rename Folder Rename an existing folder without changing its location in the folder hierarchy. Use this API when you want to update the folder name while preserving the same folder ID, parent folder, and library context. > Kind: REST endpoint · Updated: Mar 6, 2026 · POST /v1/folders/:folderId/rename Rename an existing folder without changing its location in the folder hierarchy. Use this API when you want to update the folder name while preserving the same folder ID, parent folder, and library context. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | folderId | any | required | Folder id | ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Request body ```json { "name": "CloudFiles API Request 1" } ``` ## Example request **cURL** ```bash curl --request POST \ --url 'https://api.cloudfiles.io/v1/folders/:folderId/rename?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'authorization: Bearer API_Key' \ --data '"{\n \"name\" : \"CloudFiles API Request 1\"\n}"' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var raw = JSON.stringify("{\n \"name\" : \"CloudFiles API Request 1\"\n}"); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/folders/:folderId/rename?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/folders/:folderId/rename?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" request.body = JSON.dump("{\n \"name\" : \"CloudFiles API Request 1\"\n}") response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/folders/:folderId/rename?library=string&driveId=string" payload = json.dumps("{\n \"name\" : \"CloudFiles API Request 1\"\n}") headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) ``` --- # Get Folder Children https://help.cloudfiles.io/docs/api-get-folder-children/ # Get Folder Children Retrieve the files and subfolders inside a specific folder. This API is useful for browsing folder contents programmatically, and it supports pagination parameters such as limit, skip, and nextPageToken for larger result sets. > Kind: REST endpoint · Updated: Mar 6, 2026 · GET /v1/folders/:folderId/children Retrieve the files and subfolders inside a specific folder. This API is useful for browsing folder contents programmatically, and it supports pagination parameters such as limit, skip, and nextPageToken for larger result sets. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | folderId | any | required | Folder Id | ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | driveId | string | optional | Drive id. Required when library is sharepoint or msteams. | | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | limit | string | optional | Pagination - Number of children | | skip | string | optional | Pagination for Hubspot and CloudFile Libraries - Number of pages already fectched * Number of child per page | | nextPageToken | string | optional | Pagination for other libraries - Next page token received when the limit is less than the number of children | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Example request **cURL** ```bash curl --request GET \ --url 'https://api.cloudfiles.io/v1/folders/:folderId/children?driveId=string&library=string&limit=string&skip=string&nextPageToken=string' \ --header 'accept: application/json' \ --header 'authorization: Bearer API_Key' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/folders/:folderId/children?driveId=string&library=string&limit=string&skip=string&nextPageToken=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/folders/:folderId/children?driveId=string&library=string&limit=string&skip=string&nextPageToken=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/folders/:folderId/children?driveId=string&library=string&limit=string&skip=string&nextPageToken=string" payload = {} headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ``` ## Response body ```json { "count": 42, "nextPageToken": "eyJ...", "content": [ { "id": "fld_456", "name": "Contracts", "type": "folder", "createdAt": "2026-07-01T09:00:00Z", "updatedAt": "2026-07-08T12:00:00Z", "createdBy": "usr_1", "externalUrl": "https://cloudfiles.sharepoint.com/sites/Sales/Shared%20Documents/Contracts" }, { "id": "file_789", "name": "Proposal.pdf", "type": "file", "createdAt": "2026-07-02T09:00:00Z", "updatedAt": "2026-07-08T12:00:00Z", "createdBy": "usr_1", "extension": "pdf", "size": 20481, "externalUrl": "https://cloudfiles.sharepoint.com/sites/Sales/Shared%20Documents/Proposal.pdf" } ] } ``` --- # Get Folder https://help.cloudfiles.io/docs/api-get-folder/ # Get Folder Fetches the details of a specific folder using its folder ID. Use this API to retrieve folder metadata and validate that a folder exists in the selected library and drive. > Kind: REST endpoint · Updated: Mar 6, 2026 · GET /v1/folders/:folderId Fetches the details of a specific folder using its folder ID. Use this API to retrieve folder metadata and validate that a folder exists in the selected library and drive. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | folderId | any | required | Folder Id | ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Example request **cURL** ```bash curl --request GET \ --url 'https://api.cloudfiles.io/v1/folders/:folderId?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'authorization: Bearer API_Key' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/folders/:folderId?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/folders/:folderId?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/folders/:folderId?library=string&driveId=string" payload = {} headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ``` ## Response body ```json { "id": "fld_456", "name": "Contracts", "type": "folder", "createdAt": "2026-07-01T09:00:00Z", "updatedAt": "2026-07-08T12:00:00Z", "createdBy": "usr_1", "externalUrl": "https://cloudfiles.sharepoint.com/sites/Sales/Shared%20Documents/Contracts" } ``` --- # Delete Folder https://help.cloudfiles.io/docs/api-delete-folder/ # Delete Folder Deletes a folder from any storage. Use this API when you need to remove folders programmatically as part of cleanup, restructuring, or content lifecycle workflows. > Kind: REST endpoint · Updated: Mar 6, 2026 · DELETE /v1/folders/:id Deletes a folder from any storage. Use this API when you need to remove folders programmatically as part of cleanup, restructuring, or content lifecycle workflows. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | id | any | required | Folder Id | ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Example request **cURL** ```bash curl --request DELETE \ --url 'https://api.cloudfiles.io/v1/folders/:id?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'authorization: Bearer API_Key' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var requestOptions = { method: 'DELETE', headers: myHeaders, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/folders/:id?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/folders/:id?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Delete.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/folders/:id?library=string&driveId=string" payload = {} headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("DELETE", url, headers=headers, data=payload) print(response.text) ``` --- # Create Attachment (REST Endpoint) https://help.cloudfiles.io/docs/api-create-attachment/ # Create Attachment Create an attachment that links a resource, such as a file or folder, to any CRM record. The linked resource can be directly viewed from the CRM record using the CloudFiles widget post successful attachment. > Kind: REST endpoint · Updated: Mar 6, 2026 · POST /v1/attachments Create an attachment that links a resource, such as a file or folder, to any CRM record. The linked resource can be directly viewed from the CRM record using the CloudFiles widget post successful attachment. ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Request body ```json { "resource": "{{resource-id}}", "resourceType": "folder", "source": "SALESFORCE", "objectType": "contact", "objectId": "003dL00001Xml6JQAR" } ``` ## Example request **cURL** ```bash curl --request POST \ --url 'https://api.cloudfiles.io/v1/attachments?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'authorization: Bearer API_Key' \ --data '"{\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"source\": \"SALESFORCE\",\n \"objectType\": \"contact\",\n \"objectId\": \"003dL00001Xml6JQAR\"\n}"' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); myHeaders.append("", "string"); var raw = JSON.stringify("{\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"source\": \"SALESFORCE\",\n \"objectType\": \"contact\",\n \"objectId\": \"003dL00001Xml6JQAR\"\n}"); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/attachments?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/attachments?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" request[""] = "string" request.body = JSON.dump("{\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"source\": \"SALESFORCE\",\n \"objectType\": \"contact\",\n \"objectId\": \"003dL00001Xml6JQAR\"\n}") response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/attachments?library=string&driveId=string" payload = json.dumps("{\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"source\": \"SALESFORCE\",\n \"objectType\": \"contact\",\n \"objectId\": \"003dL00001Xml6JQAR\"\n}") headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key', '': 'string' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) ``` ## Response body ```json { "id": "att_123", "type": "external", "objectId": "deal_456", "objectType": "hubspot_deal", "createdAt": "2026-07-05T10:00:00Z", "createdBy": "usr_1" } ``` --- # List Attachments https://help.cloudfiles.io/docs/api-list-attachments/ # List Attachments Retrieve the resources attached to a specific CRM record, based on the object ID and object type. Use this API to fetch all linked files and/or folders associated with a CRM record. > Kind: REST endpoint · Updated: Mar 6, 2026 · GET /v1/attachments Retrieve the resources attached to a specific CRM record, based on the object ID and object type. Use this API to fetch all linked files and/or folders associated with a CRM record. ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | objectId | string | optional | Object Id is required | | objectType | string | optional | Object Type is optional. For Hubspot value must be one of CONTACT, TICKET, COMPANY, DEAL. Required to list Hubspot attachments. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Request body ```json { "resource": "{{resource-id}}", "resourceType": "folder", "source": "HUBSPOT", "objectType": "CONTACT", "objectId": "51" } ``` ## Example request **cURL** ```bash curl --request GET \ --url 'https://api.cloudfiles.io/v1/attachments?objectId=string&objectType=string' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'authorization: Bearer API_Key' \ --data '"{\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"source\": \"HUBSPOT\",\n \"objectType\": \"CONTACT\",\n \"objectId\": \"51\"\n}"' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var raw = JSON.stringify("{\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"source\": \"HUBSPOT\",\n \"objectType\": \"CONTACT\",\n \"objectId\": \"51\"\n}"); var requestOptions = { method: 'GET', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/attachments?objectId=string&objectType=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/attachments?objectId=string&objectType=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" request.body = JSON.dump("{\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"source\": \"HUBSPOT\",\n \"objectType\": \"CONTACT\",\n \"objectId\": \"51\"\n}") response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/attachments?objectId=string&objectType=string" payload = json.dumps("{\n \"resource\": \"{{resource-id}}\",\n \"resourceType\": \"folder\",\n \"source\": \"HUBSPOT\",\n \"objectType\": \"CONTACT\",\n \"objectId\": \"51\"\n}") headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ``` ## Response body ```json [ { "id": "att_123", "type": "external", "objectId": "deal_456", "objectType": "hubspot_deal", "createdAt": "2026-07-05T10:00:00Z", "createdBy": "usr_1" }, { "id": "att_124", "type": "internal", "objectId": "fld_789", "objectType": "folder", "createdAt": "2026-07-06T11:00:00Z", "createdBy": "usr_2" } ] ``` --- # Rename File https://help.cloudfiles.io/docs/api-rename-file/ # Rename File Rename an existing file without changing its location. Use this API when you want to update the display name of a file while keeping the same file ID, folder, and library context. > Kind: REST endpoint · Updated: Mar 6, 2026 · POST /v1/files/:fileId/rename Rename an existing file without changing its location. Use this API when you want to update the display name of a file while keeping the same file ID, folder, and library context. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | fileId | any | required | File Id | ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Request body ```json { "name": "CloudFiles API Request 1" } ``` ## Example request **cURL** ```bash curl --request POST \ --url 'https://api.cloudfiles.io/v1/files/:fileId/rename?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'authorization: Bearer API_Key' \ --data '"{\n \"name\" : \"CloudFiles API Request 1\"\n}"' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var raw = JSON.stringify("{\n \"name\" : \"CloudFiles API Request 1\"\n}"); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/files/:fileId/rename?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/files/:fileId/rename?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" request.body = JSON.dump("{\n \"name\" : \"CloudFiles API Request 1\"\n}") response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/files/:fileId/rename?library=string&driveId=string" payload = json.dumps("{\n \"name\" : \"CloudFiles API Request 1\"\n}") headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) ``` --- # Get File https://help.cloudfiles.io/docs/api-get-file/ # Get File Fetch the details of a specific file using its file ID. Use this API to retrieve file metadata and confirm that the file exists in the selected storage and drive before performing follow-up actions such as download, move, rename, or delete. > Kind: REST endpoint · Updated: Mar 6, 2026 · GET /v1/folders/:fileid Fetch the details of a specific file using its file ID. Use this API to retrieve file metadata and confirm that the file exists in the selected storage and drive before performing follow-up actions such as download, move, rename, or delete. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | fileid | any | required | File Id | ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Example request **cURL** ```bash curl --request GET \ --url 'https://api.cloudfiles.io/v1/folders/:fileid?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'authorization: Bearer API_Key' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/folders/:fileid?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/folders/:fileid?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/folders/:fileid?library=string&driveId=string" payload = {} headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ``` ## Response body ```json { "id": "file_789", "name": "Proposal.pdf", "type": "file", "createdAt": "2026-07-02T09:00:00Z", "updatedAt": "2026-07-08T12:00:00Z", "createdBy": "usr_1", "extension": "pdf", "size": 20481, "externalUrl": "https://cloudfiles.sharepoint.com/sites/Sales/Shared%20Documents/Proposal.pdf" } ``` --- # Get Upload Sessions https://help.cloudfiles.io/docs/api-get-upload-sessions/ # Get Upload Sessions Create an upload session for one or more files before uploading them to any storage. This API returns the upload URLs and identifiers required to complete the file upload process. > Kind: REST endpoint · Updated: Mar 6, 2026 · POST /v1/files/upload-sessions Create an upload session for one or more files before uploading them to any storage. This API returns the upload URLs and identifiers required to complete the file upload process. ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Request body ```json { "files": [ { "name": "test.pdf", "type": "application/pdf" } ], "folderId": "{{Parent_Folder_Id}}" } ``` ## Example request **cURL** ```bash curl --request POST \ --url 'https://api.cloudfiles.io/v1/files/upload-sessions?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'authorization: Bearer API_Key' \ --data '"{\n \"files\": [\n {\n \"name\": \"test.pdf\",\n \"type\": \"application/pdf\"\n }\n ],\n \"folderId\": \"{{Parent_Folder_Id}}\"\n}"' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var raw = JSON.stringify("{\n \"files\": [\n {\n \"name\": \"test.pdf\",\n \"type\": \"application/pdf\"\n }\n ],\n \"folderId\": \"{{Parent_Folder_Id}}\"\n}"); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/files/upload-sessions?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/files/upload-sessions?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" request.body = JSON.dump("{\n \"files\": [\n {\n \"name\": \"test.pdf\",\n \"type\": \"application/pdf\"\n }\n ],\n \"folderId\": \"{{Parent_Folder_Id}}\"\n}") response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/files/upload-sessions?library=string&driveId=string" payload = json.dumps("{\n \"files\": [\n {\n \"name\": \"test.pdf\",\n \"type\": \"application/pdf\"\n }\n ],\n \"folderId\": \"{{Parent_Folder_Id}}\"\n}") headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) ``` --- # Upload and Commit File https://help.cloudfiles.io/docs/api-upload-commit-file/ # Upload and Commit File Upload a file to an external library and commits it after an upload session is created. This API takes the upload URL from ‘Get Upload Sessions’ as input. > Kind: REST endpoint · Updated: Mar 6, 2026 · POST {{upload-url-from-get-file-upload-session}} Upload a file to an external library and commits it after an upload session is created. This API takes the upload URL from ‘Get Upload Sessions’ as input. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | upload-url-from-get-file-upload-session | string | required | | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ### Form data | Parameter | Type | Required | Description | |---|---|---|---| | file | file | optional | | ## Example request **cURL** ```bash curl --request POST \ --url {{upload-url-from-get-file-upload-session}} \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'authorization: Bearer API_Key' \ --form 'file="file"' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var formdata = new FormData(); formdata.append("file", "file"); var requestOptions = { method: 'POST', headers: myHeaders, body: formdata, redirect: 'follow' }; fetch("{{upload-url-from-get-file-upload-session}}", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("{{upload-url-from-get-file-upload-session}}") http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" form_data = [['file', File.open('undefined')]] request.set_form form_data, 'multipart/form-data' response = http.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "{{upload-url-from-get-file-upload-session}}" payload = {} files=[ ] headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("POST", url, headers=headers, data=payload, files=files) print(response.text) ``` --- # Download File https://help.cloudfiles.io/docs/api-download-file/ # Download File Download a file stored in any library using its file ID. This API allows applications to retrieve files securely via authenticated requests. > Kind: REST endpoint · Updated: Mar 6, 2026 · GET /v1/files/:fileId/download Download a file stored in any library using its file ID. This API allows applications to retrieve files securely via authenticated requests. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | fileId | any | required | File Id | ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Example request **cURL** ```bash curl --request GET \ --url 'https://api.cloudfiles.io/v1/files/:fileId/download?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'authorization: Bearer API_Key' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/files/:fileId/download?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/files/:fileId/download?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/files/:fileId/download?library=string&driveId=string" payload = {} headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ``` --- # Upload CloudFiles File https://help.cloudfiles.io/docs/api-upload-cloudfiles-file/ # Upload CloudFiles File Upload a file to the CloudFiles library using the upload URL returned from the upload session. This step transfers the actual file to CloudFiles library. > Kind: REST endpoint · Updated: Mar 6, 2026 · PUT {{upload-url-from-get-file-upload-session}} Upload a file to the CloudFiles library using the upload URL returned from the upload session. This step transfers the actual file to CloudFiles library. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | upload-url-from-get-file-upload-session | string | required | | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Example request **cURL** ```bash curl --request PUT \ --url {{upload-url-from-get-file-upload-session}} \ --header 'accept: application/json' \ --header 'authorization: Bearer API_Key' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var requestOptions = { method: 'PUT', headers: myHeaders, redirect: 'follow' }; fetch("{{upload-url-from-get-file-upload-session}}", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("{{upload-url-from-get-file-upload-session}}") http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Put.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" response = http.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "{{upload-url-from-get-file-upload-session}}" payload = {} headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("PUT", url, headers=headers, data=payload) print(response.text) ``` --- # Commit CloudFiles File https://help.cloudfiles.io/docs/api-commit-cloudfiles-file/ # Commit CloudFiles File Finalize a previously uploaded file from the ‘Upload CloudFiles File’ API. > Kind: REST endpoint · Updated: Mar 6, 2026 · POST /v1/files Finalize a previously uploaded file from the ‘Upload CloudFiles File’ API. ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Request body ```json { "name": "test.pdf", "folderId": "{{parent-folder-id}}", "externalId": "{{external-id-from-get-upload-session}}", "size": 12345 } ``` ## Example request **cURL** ```bash curl --request POST \ --url 'https://api.cloudfiles.io/v1/files?library=cloudfiles' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'authorization: Bearer API_Key' \ --data '"{\n \"name\": \"test.pdf\",\n \"folderId\": \"{{parent-folder-id}}\",\n \"externalId\": \"{{external-id-from-get-upload-session}}\",\n \"size\": 12345\n}"' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var raw = JSON.stringify("{\n \"name\": \"test.pdf\",\n \"folderId\": \"{{parent-folder-id}}\",\n \"externalId\": \"{{external-id-from-get-upload-session}}\",\n \"size\": 12345\n}"); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/files?library=cloudfiles", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/files?library=cloudfiles") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" request.body = JSON.dump("{\n \"name\": \"test.pdf\",\n \"folderId\": \"{{parent-folder-id}}\",\n \"externalId\": \"{{external-id-from-get-upload-session}}\",\n \"size\": 12345\n}") response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/files?library=cloudfiles" payload = json.dumps("{\n \"name\": \"test.pdf\",\n \"folderId\": \"{{parent-folder-id}}\",\n \"externalId\": \"{{external-id-from-get-upload-session}}\",\n \"size\": 12345\n}") headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) ``` --- # Delete File https://help.cloudfiles.io/docs/api-delete-file/ # Delete File Delete a file from any library using its file ID. Use this API when you need to remove files programmatically as part of cleanup, lifecycle management, or content restructuring workflows. > Kind: REST endpoint · Updated: Mar 6, 2026 · DELETE /v1/files/:id Delete a file from any library using its file ID. Use this API when you need to remove files programmatically as part of cleanup, lifecycle management, or content restructuring workflows. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | id | any | required | File Id | ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Example request **cURL** ```bash curl --request DELETE \ --url 'https://api.cloudfiles.io/v1/files/:id?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'authorization: Bearer API_Key' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var requestOptions = { method: 'DELETE', headers: myHeaders, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/files/:id?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/files/:id?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Delete.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/files/:id?library=string&driveId=string" payload = {} headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("DELETE", url, headers=headers, data=payload) print(response.text) ``` --- # Move File https://help.cloudfiles.io/docs/api-move-file/ # Move File Move an existing file from one folder to another within the same library. The request requires the file ID and the destination folder ID. > Kind: REST endpoint · Updated: Mar 6, 2026 · POST /v1/files/:id/move Move an existing file from one folder to another within the same library. The request requires the file ID and the destination folder ID. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | id | any | required | File Id | ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Request body ```json { "destination": "{{Destination_Folder_Id}}" } ``` ## Example request **cURL** ```bash curl --request POST \ --url 'https://api.cloudfiles.io/v1/files/:id/move?library=string&driveId=string' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'authorization: Bearer API_Key' \ --data '"{\n \"destination\" : \"{{Destination_Folder_Id}}\"\n}"' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var raw = JSON.stringify("{\n \"destination\" : \"{{Destination_Folder_Id}}\"\n}"); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/files/:id/move?library=string&driveId=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/files/:id/move?library=string&driveId=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" request.body = JSON.dump("{\n \"destination\" : \"{{Destination_Folder_Id}}\"\n}") response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/files/:id/move?library=string&driveId=string" payload = json.dumps("{\n \"destination\" : \"{{Destination_Folder_Id}}\"\n}") headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) ``` --- # Get Dataroom https://help.cloudfiles.io/docs/api-get-dataroom/ # Get Dataroom Fetch the details of a specific dataroom using its dataroom ID. > Kind: REST endpoint · Updated: Mar 6, 2026 · GET /v1/datarooms/:dataroomId Fetch the details of a specific dataroom using its dataroom ID. ### Path parameters | Parameter | Type | Required | Description | |---|---|---|---| | dataroomId | any | required | Dataroom Id | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Example request **cURL** ```bash curl --request GET \ --url https://api.cloudfiles.io/v1/datarooms/:dataroomId \ --header 'accept: application/json' \ --header 'authorization: Bearer API_Key' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/datarooms/:dataroomId", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/datarooms/:dataroomId") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/datarooms/:dataroomId" payload = {} headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ``` ## Response body ```json { "id": "dr_123", "name": "Acme Due Diligence", "description": "Q3 fundraise data room", "createdAt": "2026-07-01T09:00:00Z", "createdBy": "usr_1", "updatedAt": "2026-07-08T12:00:00Z" } ``` --- # Get Search Results https://help.cloudfiles.io/docs/api-get-search-results/ # Get Search Results Returns search results for a query across any storage. Results can include files and/or folders resources matching the search string. > Kind: REST endpoint · Updated: Mar 6, 2026 · GET /v1/search Returns search results for a query across any storage. Results can include files and/or folders resources matching the search string. ### Query parameters | Parameter | Type | Required | Description | |---|---|---|---| | driveId | string | optional | Drive Id. Required when library is sharepoint or msteams. | | library | string | optional | One of sharepoint, msteams, google, onedrive, box, dropbox, cloudfiles, s3, azure, hubspot, azurefiles, sftp | | q | string | optional | Search query | ### Header parameters | Parameter | Type | Required | Description | |---|---|---|---| | Authorization | string | optional | Replace the API_Key placeholder with your actual API key. | ## Example request **cURL** ```bash curl --request GET \ --url 'https://api.cloudfiles.io/v1/search?driveId=string&library=string&q=string' \ --header 'accept: application/json' \ --header 'authorization: Bearer API_Key' ``` **JavaScript** ```js var myHeaders = new Headers(); myHeaders.append("accept", "application/json"); myHeaders.append("content-type", "application/json"); myHeaders.append("authorization", "Bearer API_Key"); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("https://api.cloudfiles.io/v1/search?driveId=string&library=string&q=string", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); ``` **Ruby** ```ruby require "uri" require "json" require "net/http" url = URI("https://api.cloudfiles.io/v1/search?driveId=string&library=string&q=string") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) request["accept"] = "application/json" request["content-type"] = "application/json" request["authorization"] = "Bearer API_Key" response = https.request(request) puts response.read_body ``` **Python** ```py import requests import json url = "https://api.cloudfiles.io/v1/search?driveId=string&library=string&q=string" payload = {} headers = { 'accept': 'application/json', 'content-type': 'application/json', 'authorization': 'Bearer API_Key' } response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ``` ## Response body ```json { "content": [ { "id": "fld_456", "name": "Contracts", "type": "folder", "createdAt": "2026-07-01T09:00:00Z", "updatedAt": "2026-07-08T12:00:00Z", "createdBy": "usr_1", "externalUrl": "https://cloudfiles.sharepoint.com/sites/Sales/Shared%20Documents/Contracts" }, { "id": "file_789", "name": "Proposal.pdf", "type": "file", "createdAt": "2026-07-02T09:00:00Z", "updatedAt": "2026-07-08T12:00:00Z", "createdBy": "usr_1", "extension": "pdf", "size": 20481, "externalUrl": "https://cloudfiles.sharepoint.com/sites/Sales/Shared%20Documents/Proposal.pdf" } ] } ``` --- ## Salesforce Flow Actions --- # Flow Actions https://help.cloudfiles.io/salesforce/flow-actions # Flow Actions This collection covers all Salesforce flow actions and component-related articles provided out of the box by the CloudFiles Salesforce integration — Doc Management, Doc Sharing, Doc Generation, Doc AI, Misc, and Screen Flow Elements. > Kind: Guide · Updated: Jul 9, 2026 This collection consists of all Salesforce flow actions and component-related articles provided out of the box by the CloudFiles Salesforce integration. ## Flow action categories - Doc Management Flow Actions: Automate file and folder operations across external storage platforms — creating, copying, moving and deleting resources, managing record attachments, retrieving metadata, updating permissions, and syncing files between external storage and Salesforce. - Doc Sharing Flow Actions: Automate file and content sharing workflows — creating and managing datarooms, generating shareable links, handling file requests, sharing resources with Experience Cloud users, and updating link security settings. - Doc Generation Flow Actions: Automate document generation directly within Flow Builder — generating single or multiple documents asynchronously or synchronously, and combining multiple files into a single document in real time. - Doc AI Flow Actions: AI-powered document processing within Flow Builder — creating datasets, extracting structured data to create or update records, processing and querying documents using natural-language prompts, and splitting merged PDFs into individual documents. - Misc Flow Actions: Assign and remove CloudFiles product licenses, add delays to flow executions, and retrieve CloudFiles event details for platform event-triggered flows. - Screen Flow Elements: CloudFiles elements for Salesforce screen flows — the internal record widget, the Experience Cloud widget, and the CloudFiles uploader. ## Adding actions in flows Create a standard Salesforce flow with any type of trigger conditions. Then add an element and choose Actions. If CloudFiles is correctly installed and connected, you can find the actions under the CloudFiles category. ![](https://media.help.cloudfiles.io/fa-flow-actions-sf/01.png) > **Note** — If you use a record triggered flow, make sure you run this action on an asynchronous path as shown below. ![](https://media.help.cloudfiles.io/fa-flow-actions-sf/02.png) ## Action limits Each flow action may include one or more API calls made to the CloudFiles server. Depending on the action type, this contributes either one or more action executions toward the automation action limits defined for each tier. You can use the following list as a reference to understand how your flow actions will contribute towards the automation action limits. > **Count of 1** — These actions contribute a count of 1 each time they are executed: Create Folder, Create Attachment, Get Attachments, Delete Attachments, Create Dataroom, Create File Request, Add to Dataroom, Create Link, Get Event Details, Get Connected Folder, Get Files Connect Resource ID, Create Files Connect Files, Update Permissions, Get Folder Contents, Get Resource Property, Set Resource Property, Get Salesforce Files. > **Variable count** — These actions contribute a variable count to the limit each time they are executed: Copy Salesforce Files, Copy Resources, Move Resources. The count contributed depends on the number of resources passed into the action (for example, if 2 files are passed into the Copy Resources action, this contributes a count of 2 toward the limit). > **Not counted** — These actions are not counted towards the limit since they are not used in everyday flows: Create Folder Async and other async actions used for migration purposes. --- # Doc Management Flow Actions https://help.cloudfiles.io/salesforce/doc-management-flow-actions # Doc Management Flow Actions This collection consists of all Document Management Salesforce flow actions. > Kind: Flow action · Updated: Jul 4, 2026 This collection consists of all Document Management Salesforce flow actions. - Copy Resources - This action can be used to copy a file or folder from one location to another within the same connected external storage. - Copy Salesforce Files - This action lets you copy native Salesforce files to a desired location in external storage. - Create Attachment - This action attaches a file or folder from an external cloud storage to a Salesforce record. Files & Folders attached to a record show up in the CloudFiles widget on the record page in Salesforce. - Create File Connect Files - This action can be used to create a Files Connect object for a file uploaded/copied through CloudFiles. - Create Folder - This flow action allows you to create a folder in a connected external storage system by specifying the folder name and its location. This means you can automatically create folders in Google Drive, SharePoint, OneDrive etc. - Create Folder (Async) - This flow action enables you to create folders asynchronously in various external storages, such as Google Drive, SharePoint, OneDrive, and more. - Create Microsoft Team - This flow action allows you to automate the creation of a Microsoft Team directly from Salesforce, useful to streamline collaboration by setting up Teams tailored to specific business scenarios. - Create Salesforce File - This flow action enables you to copy a file from external storage into Salesforce as a Salesforce File using file's metadata details as input to identify and retrieve the external file. - Create Salesforce Files (Batch) - This flow action allows you to copy multiple files from external storage into Salesforce as Salesforce Files in a single action processesing multiple files at once. - Create SharePoint Site - This flow action allows users to automate the creation of new SharePoint sites directly from Salesforce. - Create SharePoint Drive - This flow action enables users to automatically create new SharePoint drives from Salesforce for projects, teams, or departments. - Delete Attachment - This flow action allows you to disconnect an already linked resource (file or folder) from a Salesforce record. - Delete Resource - This flow action allows you to delete a resource (file or folder) in a connected external storage, handling deletion of a single resource or multiple resources in one execution. - Get Attachments - This flow action allows you to retrieve all the Resource (files or folders) connected to a Salesforce record through CloudFiles. - Get Connected Folder - This action can be used to get a single attachment of type "folder" for a Salesforce record. - Get Files Connect Resource Id - This action can be used to get "Files Connect Resource Id" for a file/folder stored in external storages. - Get Folder Contents - This action outputs all the files and folders within a queried external storage folder as a collection of resources. - Get Resource Details - This action allows you to retrieve comprehensive metadata details of an external storage resource by inputting known metadata information, even if only a few parameters are available. - Get Resource Property - This action can be used to retrieve specific property values of a specific resource. - Get Salesforce Files - This flow action enables retrieval of IDs of all Salesforce files attached to a specific Salesforce record particularly useful when you need to perform further operations on these files, such as processing, sharing, or deleting them in bulk. - Get Shared Resources - Thisflow action retrieves all files and folders shared with a Salesforce community. It helps manage or process shared resources in bulk within Salesforce Flows. - Move Resource - This action can be used to move a file or folder from one location to another within the same external storage drive. - Search by Resource Metadata - This action is a specialised feature designed for use with SharePoint and MS Teams, focusing on custom properties that allows users to efficiently search and manage resources(files & folders) by tags (metadata columns). - Set Resource Property - This action automates the process of updating or assigning metadata property values for resources across multiple storage systems. - Set Resource Property (Batch) - This flow action extends the functionality of the standard Set Resource Property flow action, enabling you to process multiple resource property updates in a single action instead of configuring multiple individual actions. - Update Permissions - This action can be used to set permissions of a file/folder in external storage like SharePoint, Google Drive etc. --- # Copy Resources (Flow Action) https://help.cloudfiles.io/salesforce/copy-resources-flow-action # Copy Resources Learn how to use the Copy Resources flow action to easily copy files or folders to a specific location. This comprehensive document covers everything from adding the action to configuring parameters like source, destination, and duplication behavior. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Copy Resources flow action allows you to copy resources (files or folders) from one location to another within the same connected external storage. This action is useful for automations requiring resource duplication or re-organization, such as creating backup folders, replicating templates, or moving resources to a different location for specific workflows. The image below demonstrates how the CloudFiles: Copy Resources flow action looks. Detailed explanations of input parameters and usage are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-copy-resources/01.png) ## What this action does The Copy Resources action performs the following tasks: Duplicates Resources: It copies files or folders from the source location to the specified destination folder. Publishes Events: Instead of returning outputs immediately, the action publishes a Resource Cloned event for each resource copied, enabling downstream automations. Scenario: Automate the creation of account folders with predefined subfolder structures. Use the Create Folder action to create an account folder. Retrieve the contents of the template folder using the Get Folder Contents action. Loop through the retrieved folder contents and create a text collection of resource IDs. Pass this collection to the Copy Resources action to replicate the subfolder structure in the account folder. The image below provides an overview of such an automation: ![](https://media.help.cloudfiles.io/fa-copy-resources/02.png) ## Input Parmaters The following input parameters are required to configure the Copy Resources action: ### Destination Drive Id Description: The Drive ID of the destination where the resources will be copied. Details: Required for storages with multiple drives (e.g., Google Drive, SharePoint). ### Destination Folder ID Description: The ID of the folder in the destination location where the resources will be placed. ### Drive ID Description: The Drive ID of the resources being copied. Details: Indicates the current location of the resources to be copied. > **How to get these Parameters or Metadata Details ?** — Some of these Parameters like Drive ID can be obtained from within Salesforce CloudFiles App by navigating to the parent folder in the Content Library Tab and clicking the "View Metadata" button as shown in image below-Follow the steps below to retrieve these IDs -Click on App Launcher on top left. Search for the CloudFiles app.In the CloudFiles app, select the Content Library tab.Go to your cloud storage. You may need to login if you haven't already.Go to the target folder where you would like to place the created folders.A dialog box opens up which shows all the IDs. Copy the ID from here.These steps are shown in the GIF below - ### File/Folder Ids Description: A text collection containing the Resource IDs of the files or folders to be copied. Details: Use a text collection to store multiple resource IDs. For a single resource, convert it to a collection using an assignment element. > **Configure File/Folder Ids parameter-** — The parameter "File/Folder Ids" is a list parameter, which would only accept value of type list. If you're copying a single file/folder, you can convert it to a list using an assignment element.To do this -Insert an "Assignment" element in the flow before the "Copy Resource" action.In the Variable field, click "New Resource".Set up a new resource as shown below -Please select the Data Type as "Text" and check the box "Allow multiple values(collection)".4. Click 'Done', and then configure the assignment element as shown below -Please note the operator to be used is "Add" and the value is the Id of single file/folder. ### Library Description: The external storage system where the copy operation will take place (e.g., SharePoint, Google Drive, Dropbox). Options: Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, azure, cloudfiles, s3. ### Record Id Description: The Record Id parameter is used to identify and manage the origin of the created Resource Cloned Event. Purpose: Event Identification: Helps distinguish the source of the event in scenarios where multiple flows use the same action for different objects or use cases. Further automations: Enables performing further automations from the triggering event and event deatils. ![](https://media.help.cloudfiles.io/fa-copy-resources/03.png) Key Features: Flexible Input: You can input any text string, not just a Record Id. Event Output: Whatever you input here will be available in the corresponding Resource Cloned event details as Record Id. How it works: Input the Record Id of the relevant record into this parameter. When the event is triggered, the Record Id is included in the event details. In the Platform Event Mode Flow Setup event-triggered flow, retrieve the Record Id from the event details to filter and process further automations, such as linking the Resource to the record. This parameter ensures traceability and flexibility in handling files across different flows and use cases. > **Note** — You can use the Record Id not just to input a Record Id but literally any text string. Whatever, you input into the action shall be the output in the corresponding Resource Cloned event.If you need to differentiate the event based on the type of the Object and also in between two separate scenarios:Scenario 1: Input "Scenario1IdentifierTerm_RecordId" as the parameter.Scenario 2: Input "Scenario2IdentifierTerm_RecordId" as the parameter.In the event-triggered flow:Fetch the parameter value from the event details.Use it to identify the Record Id and differentiate between the two scenarios.This approach allows you to:Retrieve the Record Id for further automation.Differentiate between events to handle specific actions based on the scenario. ## Output Parameters The CloudFiles: Copy Resources apex action does not return anything as an output in the flow it is used but for every successful resource cloned a Resource Cloned is published. For example, if the action was configured to copy 4 resources, an event is published for each 4 successful copies. This event signals completion of resource cloning and can be used to trigger platform event flows to perform post-creation actions. > **Note** — If the action fails due to some reason, an error-event event will be triggered and this event can be used in decision element to diagnose and handle the error. --- # Copy Salesforce Files (Flow Action) https://help.cloudfiles.io/salesforce/copy-salesforce-files # Copy Salesforce Files Learn how to use a flow action to effortlessly copy files from Salesforce storage to popular external platforms like SharePoint and Google Drive. This comprehensive document provides step-by-step instructions for adding the action to a flow and configuring its input parameters. > Kind: Flow action · Updated: Jul 1, 2026 ## Introduction The Copy Salesforce Files flow action can be used in process automations where you have a requirement to copy native Salesforce files to a desired location in external storage. The image below gives an overview of the input parameters and what this action looks like. Detailed description of these input parameters and it’s outputs are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-copy-salesforce-files/01.jpg) ## What this action does The Copy Salesforce Files flow action copies Salesforce files (identified by their content document IDs) to an external storage location (identified by its metadata). For each file copied, a salesforce-file-copied event is triggered on successful file copy. This action can be combined with other flow actions or elements to automate processes, such as moving files attached to object records into their connected external storage folders. For instance, the flow snippet below demonstrates a use case where the Copy Salesforce Files action copies files attached to Account records (triggered by the salesforce-file-attached event) into their respective Account Folder (details provided by the Get Connected Folder action). Once each file is copied, a salesforce-file-copied event is published, providing the copied file details and enabling the file to be deleted from Salesforce after a successful copy. Refer to the Tutorial to understand the use case in detail. The image below illustrates how this automation would look. ![](https://media.help.cloudfiles.io/fa-copy-salesforce-files/02.jpg) ## Input Parameters Let us discuss each of the input parameters in detail in the sections below. ### Content Document Ids Input the Text Collection of Content Document Ids of Salesforce Files which are to be copied. A Content Document represents a document that has been uploaded to a library in Salesforce CRM Content or Salesforce Files. The Content Document Id could be used to uniquely identify a Salesforce File. ![](https://media.help.cloudfiles.io/fa-copy-salesforce-files/03.png) One way of getting Content Documents Ids is by using Get Records flow action with Content Document Link as its object and by passing Record Id of the desired record as LinkedEntityId. Refer to the article to know more about Content Document Ids. > **Note** — This action cannot be used to copy “Attachments” (Salesforce Files old format) ### Destination Resource Parameters These parameters are needed to specify the copy location. You can get these parameters by viewing metadata details for a folder in the “Content Library” tab of CloudFiles app in Salesforce or can be fetched through other flow actions or elements like “Get Connected Folder”. ### Library Input the destination Library. Possible values are sharepoint, google, azure,onedrive, dropbox, box, s3, sftp or cloudfiles. ### Drive Id This is important for Google Drive & SharePoint libraries only. The Drive ID is a unique identifier for a storage location in both SharePoint and Google Drive. In SharePoint, it represents a document library within a site, while in Google Drive, it identifies a user's drive or shared drive. ![](https://media.help.cloudfiles.io/fa-copy-salesforce-files/04.png) ### Folder Id This is the folder Id of the destination folder into which the files are to be copied. > **Note** — If you wish to copy directly into a Drive instead of a folder, you can skip this parameter. ### Salesforce Record Id (Optional) Input the object Record Id to which the Salesforce Files are attached. > **Note** — You can use the Salesforce Record Id to not just input a Record Id but literally any text string. Whatever, you input into the action shall be output in the corresponding Salesforce File Copied event.If you need to differentiate the event based on the type of the Object and also in between two separate scenarios:Scenario 1: Input "Scenario1IdentifierTerm_RecordId" as the parameter.Scenario 2: Input "Scenario2IdentifierTerm_RecordId" as the parameter.In the event-triggered flow, fetch the input parameter value from the event details, output as Parent Id.This approach allows you to Retrieve the Record Id for further automation and differentiate between events to handle specific actions based on the scenario. ## Output Parameters The apex action does not return anything as an output in the flow it is used but for every file copied, a salesforce-file-copied event is published. This event signals the completion of the file copy and can be used to trigger platform event flows to perform post-copy actions such as deletion of files or updation of metadata. > **Note** — If the action fails due to some reason, an error-event event will be triggered and this event can be used in decision element to diagnose and handle the error. > **Note** — If a file is already present at the destination with the same name of the file which is being copied, the handling of this conflict behaviour will be according to the preset configuration in CloudFiles app as shown in image below- ## See it in Action The GIF below demonstrates the example use case we discussed in prior section i.e. moving files attached to object records into their connected external storage folders. Refer to the Tutorial to implement and understand the whole flow for this use case. ![](https://media.help.cloudfiles.io/fa-copy-salesforce-files/05.gif) --- # Create Attachment (Flow Action) https://help.cloudfiles.io/salesforce/create-attachment-flow-action # Create Attachment Learn how to add an attachment to a Salesforce record with this comprehensive document. Discover step-by-step instructions on adding the "Create Attachment" action to a flow and configuring essential parameters to link a file or folder from external storage. > Kind: Flow action · Updated: Jul 1, 2026 ## Introduction The CloudFiles: Create Attachment flow action allows you to link a file or folder from an external cloud storage service (e.g., Google Drive, SharePoint, Dropbox) to a Salesforce record. Once linked, these files or folders appear in the CloudFiles Widget on the Salesforce record's page, providing seamless integration between Salesforce and cloud storage. > **Note** — For SharePoint could storage, you can link a file, folder, site, or drive to the Salesforce record. The image below illustrates a sample flow using the Create Attachment action to link a resource (file or folder) to a Salesforce record. Detailed explanations of input parameters and usage are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-create-attachment/01.png) ## What this action does The Create Attachment action simplifies the process of linking external storage resources with Salesforce records, ensuring quick access through the CloudFiles widget. Imagine you want to set up an automation that creates a folder in external storage for every new Salesforce Account record. To make this folder accessible from the Account record page, you can: - Use the Create Folder action to create the folder in external storage. - Use the Create Attachment action to link the newly created folder to the Salesforce Account record. This ensures the folder is automatically connected and accessible in the CloudFiles widget on the Account record page, eliminating the need to manually connect a folder to the Record. Below is an example of an attached folder - ![](https://media.help.cloudfiles.io/fa-create-attachment/02.png) ## Input Parameters When adding the CloudFiles: Create Attachment action in Flow Builder, configure the following input parameters: ### Resource Id - Description: The unique ID of the resource (file or folder) to be attached. - How to Get It: Use the output of a previous flow action like Create Folder or Get Resource Details to retrieve the resource ID. For example, {!Outputs from Create Folder} > Resource ID. ### Resource Type - Description: Indicates whether the resource is a file or a folder. - Valid Values: file or folder > **Note** — For SharePoint, list of valid values is - file, folder, site, or drive ### Library - Description: The external storage service where the resource is located. - Valid Values: sharepoint, google, azure,onedrive, dropbox, box, or cloudfiles (AWS S3). ### Drive ID - Description: The drive ID for Google Drive or SharePoint where the resource resides. - Required For: Google Drive, SharePoint. - How to Get It: - Use the output of a previous flow action like Create Folder or Get Resource Details to retrieve the Drive ID. - Or retrieve this from the Content Library Tab in Salesforce using the "View Metadata" button. ### Salesforce Record ID - Description: The ID of the Salesforce record to which the resource will be attached. - Example: Use {!$Record.Id} in a record-triggered flow or specify a dynamic value, such as {!Triggering Account} > Account ID. > **How to Get Metadata Details ?** — Some of these Parameters like DriveID can be obtained from within Salesforce CloudFiles App by navigating to the parent folder in the Content Library Tab and clicking the "View Metadata" button as shown in image below-Follow the steps below to retrieve these IDs -Click on App Launcher on top left. Search for the CloudFiles App.In the CloudFiles App, select the Content Library Tab.Go to your cloud storage. You may need to login if you haven't already.Go to the target folder where you would like to place the created folders in.A dialog box opens up which shows all the IDs. Copy the ID from here.These steps are shown in the GIF below - ## Output Parameters The Apex action generates a custom type called Attachment as its output. While it does not explicitly list output parameters, you can retrieve the following information for use in subsequent steps: - Attachment ID - The CloudFiles unique ID of the created attachment. - Resource Properties - Resource ID: External ID of the resource. - Name: Name of the attached resource. - Path: The path of the resource in external storage. - Type: Type of the resource ("file" or "folder"). - Library: External storage service used. - Drive ID: Relevant for Google Drive or SharePoint. These values can be used for further operations or stored for reference. The image below shows the output of the create attachment apex action- ![](https://media.help.cloudfiles.io/fa-create-attachment/03.png) ## See it in action In the Gif below, we have shown how we create the attachment and attach the created folder to the Salesforce account record- ![](https://media.help.cloudfiles.io/fa-create-attachment/04.gif) --- # Create File Connect Files (Flow Action) https://help.cloudfiles.io/salesforce/PusU-create-file-connect-files # Create File Connect Files Learn how to seamlessly upload files from Salesforce to popular Cloud Storage platforms like SharePoint or Google Drive using CloudFiles. This comprehensive document covers step-by-step instructions for adding the action to a flow and configuring its parameters. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction Salesforce Files connect can be used to link files from a Cloud Storage to any record in Salesforce. You can easily setup Files Connect following the instructions here. However, Files Connect does not support uploading files directly to a Cloud Storage platform from within Salesforce. With CloudFiles, you can upload files in Salesforce which directly goes to the Cloud Storage platform like SharePoint, Google Drive etc... without ever consuming your Salesforce storage. Using CloudFiles flow actions, you can also copy a Salesforce file to a Cloud Storage platform automatically. Using "Create File Connect Files" action, you will be able to create a Files Connect object for a file uploaded/copied through CloudFiles. ## Configuration - External Data Source Name - This is the name of the external data source, you create as a part of Files Connect setup process. Please note that this is represented by the field DeveloperName on the Salesforce object ExternalDataSource. To get the value of DeveloperName field, you can run this SQL query in your Salesforce developer console. ```sql Select Id, DeveloperName, MasterLabel from ExternalDataSource ``` - File Connect Resource Id- You can get this from the output of "Get Event Details" action we used in the last step. Please use the field name "FileUploaded.FileConnectResourceId" - Name -  Name of the uploaded file. You can get this from the output of "Get Event Details" action we used in the last step. Please use the field name "FileUploaded.Name" - Salesforce Object Id - Id of the Salesforce record, to which the files connect object should be attached. You can get this from the output of "Get Event Details" action we used in the last step. Please use the field name "FileUploaded.RecordId". ![](https://media.help.cloudfiles.io/fa-create-file-connect-files/01.png) ## Return Value ContentDocumentLink object for the Files Connect file. --- # Create Folder (Flow Action) https://help.cloudfiles.io/salesforce/create-folder-flow-action # Create Folder Learn how to automatically create folders in popular cloud storage platforms like Google Drive, SharePoint, OneDrive, Dropbox, Box, and AWS S3 using the Create Folder flow action. This document provides step-by-step instructions for adding the action to a flow and configuring its input and output parameters. > Kind: Flow action · Updated: May 6, 2026 ## Introduction The CloudFiles: Create Folder flow action allows you to create a folder in a connected external storage system by specifying the folder name and its location. This action is particularly useful for automating processes where folders need to be created dynamically, ensuring a seamless and organized structure for file management. The image below illustrates the action's input and output parameters. Detailed descriptions of these parameters are outlined in the sections below. ![](https://media.help.cloudfiles.io/fa-create-folder/01.png) ## What this action does The CloudFiles: Create Folder action enables folder creation through specific triggers and automations in Salesforce. By providing essential details such as the folder name and its destination parameters, this action creates a folder in the specified external storage location and returns metadata about the created folder for further use. Scenario: Imagine a use case where every Account record in Salesforce requires a corresponding folder in an external storage system. These folders can organize and store all account related files. Instead of manually creating these folders, you can automate the process. For example, when an Account record is created, a flow can trigger this action to: - Create a folder with the Account name in the designated location. - Use the folder details returned by the action to create additional subfolders for specific purposes like contracts, invoices, or correspondence. Check the Tutorial for more information. The image below illustrates how this automation would look - ![](https://media.help.cloudfiles.io/fa-create-folder/02.png) ## Input Parameters ### Folder Name - Description: The name of the folder to be created. - How to Use: - Use Salesforce merge fields to dynamically generate folder names, e.g., {!Account.Name}. - Consider creating a Formula field on the object or Formula flow resource in case you wish to have merged field names. - Alternatively, you can input the Folder Name as Text directly. ![](https://media.help.cloudfiles.io/fa-create-folder/03.png) Destination Parameters help specify where the target folder should be created. There are multiple parameters that may need to be set based on the target cloud storage such as library, drive ID, parent folder ID etc... E.g. SharePoint users require all 3, while dropbox users may require only one. These parameters can be easily copied from within Salesforce from using the CloudFiles > Content Library Tab. > **How to Get Destination Parameters or Metadata Details ?** — Some of these Parameters like DriveId can be obtained from within Salesforce CloudFiles App by navigating to the parent folder in the Content Library Tab and clicking the "View Metadata" button as shown in image below-Follow the steps below to retrieve these IDs -Click on App Launcher on top left. Search for the CloudFiles App.In the CloudFiles App, select the Content Library Tab.Go to your cloud storage. You may need to login if you haven't already.Go to the target folder where you would like to place the created folders in.A dialog box opens up which shows all the IDs. Copy the ID from here.These steps are shown in the GIF below -- Below we describe these parameters and then, we show how to copy them easily with a single click. ### Library - Description: Specifies the configured Cloud Storage where the folder should be created. - Valid Values: sharepoint, google, s3, azure, onedrive, dropbox, box or cloudfiles. ### Drive ID - Description: Required for services like Google Drive and SharePoint with multiple drives. - How to Get It: - Use the output of a previous flow action like Create Folder or Get Resource Details to retrieve the Drive Id. - Or retrieve this from the Content Library Tab in Salesforce using the "View Metadata" button. ### Parent Folder ID - Description: The Id of the folder in which the new folder should be created. - How to Get It: - Use the View Metadata option in the Content Library Tab to obtain this Id. - Or use previous flow action's output like that of Create Folder or Get Resource Details. Example Use Case: Automating subfolder creation - Main Folder: An Account folder named "Trion Energies" is created using the Create Folder action. - Subfolder: You want to automatically create a subfolder named "Invoices" within "Trion Energies". Steps: - The Create Folder action for "Trion Energies" outputs the folder's ID as 12345. - Pass this 12345 as the Parent Folder ID in a subsequent Create Folder action to create "Invoices". ## Output Parameters The Apex action returns the following details of the created folder. You can choose to save them somewhere if you wish to use it later. ![](https://media.help.cloudfiles.io/fa-create-folder/04.png) ### Resource ID Description: The unique Id of the newly created folder. This Id can be used as the parent folder Id for creating subfolders. ### Drive ID Description: The Id of the drive where the folder was created. This value remains constant for subfolders created within the same drive. ### Library Description: Indicates the cloud storage used for folder creation, e.g.: google, sharepoint etc. ### Resource Name Description: The name of the created folder. ### Resource Path Description: The storage path of the folder in the cloud system. > **Note** — The Resource Path Output value is always null.In order to get the path of the created folder use a subsequent Get Resource Details action. ### Type Description: Specifies the type of resource created. This will always befolder > **Warning** — The output of the Create Folder action is influenced by the Folder Conflict Behavior configured for the connected cloud storage. This behavior determines what happens if a folder with the same name already exists at the specified location.You can set the Folder Conflict Behavior in the Salesforce CloudFiles App by following these steps:Navigate to CloudFiles > Document Management > Library Tab.Locate the section for Folder Conflict Behavior.Conflict Behavior Options:No OperationWhat Happens: No new folder is created if a folder with the same name already exists.Output Behavior:The action does not create a new folder.Instead, it returns the metadata of the existing folder.Use Case: Ideal for scenarios where duplication should be avoided and existing folders should be reused.RenameWhat Happens: The new folder is created with a unique name by appending a number (e.g., "Folder Name 1").Output Behavior:The action successfully creates a renamed folder and returns its metadata.Use Case: Useful for creating unique folder structures without overwriting existing ones.FailWhat Happens: The action fails if a folder with the same name exists.Output Behavior:An error is thrown, and no folder is created.Use Case: Best for scenarios requiring strict folder naming rules to avoid duplication.Important NotesAlways ensure the Folder Conflict Behavior aligns with your use case to prevent unintended results or errors.For troubleshooting, refer to the error message details in case of failure due to conflict. ## See it in Action In the Gif below, we have shown how creating a new lead creates a new folder in SharePoint- ![](https://media.help.cloudfiles.io/fa-create-folder/05.gif) --- # Create Folder (Async) https://help.cloudfiles.io/salesforce/create-folder-async # Create Folder (Async) The CloudFiles: Create Folder (Async) flow action enables you to create folders asynchronously in various external storages, such as Google Drive, SharePoint, OneDrive, and more. This action is similar to the Create Folder action but publishes a Folder Created event instead of returning the result immediately. > Kind: Flow action · Updated: 2026-07-01 ## Introduction The CloudFiles: Create Folder (Async) flow action enables you to create folders asynchronously in various external storages, such as Google Drive, SharePoint, OneDrive, and more. This action is similar to the Create Folder action but with a key difference: it executes asynchronously. Instead of providing the full details of the created folder immediately, it publishes a Folder Created event, which can trigger other automations in your Salesforce environment. ![](https://media.help.cloudfiles.io/fa-create-folder-async/01.png) This action is ideal for scenarios requiring non-blocking execution and event-driven workflows. ![](https://media.help.cloudfiles.io/fa-create-folder-async/02.png) ## What this action does The Create Folder (Async) flow action is used in automations where folder creation should not hold the flow's execution. Instead of waiting for folder metadata, the action allows other processes to continue while relying on the event-driven architecture to handle folder details once the folder is created. Example Use Case Imagine you have a flow that automatically creates folders for every new Opportunity in Salesforce. With the Create Folder (Async) action, the folder creation happens in the background, and a Folder Created event is published. This event can trigger subsequent flows, such as: Creating subfolders in the newly created folder. Notifying users about the folder creation. Logging folder creation details in a custom object. ## Input Parameters ### Folder Name Description: The name of the folder to be created. How to Use: Use Salesforce merge fields to dynamically generate folder names, e.g., {!Account.Name}. Consider creating a Formula field on the object or Formula flow resource in case you wish to have merged field names. Alternatively, you can input the Folder Name as Text directly. ![](https://media.help.cloudfiles.io/fa-create-folder-async/03.png) Destination Parameters help specify where the target folder should be created. There are multiple parameters that may need to be set based on the target cloud storage such as library, Drive Id, parent folder Id etc... E.g. SharePoint users require all 3 while Dropbox users may require only one. These parameters can easily be copied from within Salesforce by using the CloudFiles > Content Library tab. > **How to get Destination Parameters or Metadata details ?** — Some of these Parameters like Drive ID can be obtained from within Salesforce CloudFiles app by navigating to the parent folder in the Content Library tab and clicking the "View Metadata" button as shown in image below-Follow the steps below to retrieve these IDs -Click on App Launcher from top left. Search for the CloudFiles app.In the CloudFiles app, select the Content Library tab.Go to your cloud storage. You may need to login if you haven't already.Go to the target folder where you would like to place the created folders.A dialog box opens up which shows all the IDs. Copy the ID from here.These steps are shown in the GIF below - Below we describe these parameters and then, we show how to copy them easily with a single click. ### Library Description: Specifies the configured Cloud Storage where the folder should be created. Valid Values: sharepoint, google, azure, s3, onedrive, dropbox, box, or cloudfiles. ### Drive ID Description: Required for services like Google Drive and SharePoint with multiple drives. How to Get It: Or retrieve this from the Content Library tab in Salesforce using the "View Metadata" button. ### Parent Folder ID Description: The Id of the folder in which the new folder should be created. How to Get It: Use the View Metadata option in the Content Library tab to obtain this Id. Example Use Case: Automating subfolder creation Main Folder: An Account folder named "Trion Energies" is created using the Create Folder action. Subfolder: You want to automatically create a subfolder named "Invoices" within "Trion Energies". Steps: The Create Folder action for "Trion Energies" outputs the folder's Id as 12345. Pass this 12345 as the Parent Folder Id in a subsequent Create Folder action to create "Invoices". ## Output Parameters ### Folder Created Event The Create Folder (Async) action publishes a Folder Created event instead of immediately returning metadata. > **Warning** — The output of the Create Folder action is influenced by the Folder Conflict Behavior configured for the connected cloud storage. This behavior determines what happens if a folder with the same name already exists at the specified location.You can set the Folder Conflict Behavior in the Salesforce CloudFiles app by following these steps:Navigate to CloudFiles > Document Management > Library tab.Locate the section for Folder Conflict Behavior.Conflict Behavior Options:No OperationWhat Happens: No new folder is created if a folder with the same name already exists.Output Behavior:The action does not create a new folder.Instead, it returns the metadata of the existing folder.Use Case: Ideal for scenarios where duplication should be avoided and existing folders should be reused.RenameWhat Happens: The new folder is created with a unique name by appending a number (e.g., "Folder Name 1").Output Behavior:The action successfully creates a renamed folder and returns its metadata.Use Case: Useful for creating unique folder structures without overwriting existing ones.FailWhat Happens: The action fails if a folder with the same name exists.Output Behavior:An error is thrown, and no folder is created.Use Case: Best for scenarios requiring strict folder naming rules to avoid duplication.Important NotesAlways ensure the Folder Conflict Behavior aligns with your use case to prevent unintended results or errors.For troubleshooting, refer to the error message details in case of failure due to conflict. --- # Create Microsoft Team (Flow Action) https://help.cloudfiles.io/salesforce/create-microsoft-team # Create Microsoft Team The CloudFiles: Create Microsoft Team flow action allows you to automate the creation of a Microsoft Team directly from Salesforce. This action can be used to streamline collaboration by setting up Teams tailored to specific business scenarios, such as a new Salesforce record or group. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Create Microsoft Team flow action allows you to automate the creation of a Microsoft Team directly from Salesforce. This action can be used to streamline collaboration by setting up Teams tailored to specific business scenarios, such as a new Salesforce record or group. By leveraging this integration, users can ensure seamless communication and efficient management of resources in Microsoft Teams. The image below provides an overview of the input parameters and how this action appears in a Salesforce flow. Detailed descriptions of the input and output parameters are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-create-microsoft-team/01.png) ## What this action does The CloudFiles: Create Microsoft Team action facilitates the creation of a Microsoft Team based on the provided parameters, such as a description, name, and optional template or an existing Team Id for cloning. The output is the Id of the newly created Team, which can be used for further integrations or configurations. Example Use Case Automatically create a Microsoft Team whenever a new Salesforce user group is created. For instance, if a user group is created for an account, the corresponding Microsoft Team can be set up to enhance collaboration among team members. ## Input Parameters To configure the Create Microsoft Team action, provide the following parameters: ### Name The name of the Microsoft Team. Example: "Account XYZ Team." ### Description A brief description of the Microsoft Team being created. Example: "Team for managing all activities related to Account XYZ." ### Team ID (for cloning) (Optional) The Id of an existing Microsoft Team to use as a template for creating the new Team. If provided, the new Team will inherit the structure and settings of the specified Team. ### Template ID (Optional) The Id of a predefined Microsoft Team template to use. If provided, the new Team will follow the structure defined by the template. ## Output Parameters The action returns the following output: ![](https://media.help.cloudfiles.io/fa-create-microsoft-team/02.png) Created Team ID (Text) A string containing the Id of the newly created Microsoft Team. This Id can be used for subsequent operations, such as updating the Team Id into a field etc. --- # Create Salesforce File (Flow Action) https://help.cloudfiles.io/salesforce/FNQY-create-salesforce-file # Create Salesforce File The CloudFiles: Create Salesforce File flow action enables you to copy a file from external storage into Salesforce as a Salesforce File (Content Document). This action uses the file's metadata details as input to identify and retrieve the external file. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Create Salesforce File flow action enables you to copy a file from external storage into Salesforce as a Salesforce File (Content Document). This action uses the file's metadata details as input to identify and retrieve the external file. Once executed, the action generates a corresponding Salesforce File, making it accessible and manageable within the Salesforce environment. The image below provides a visual representation of the action, showcasing its input and output parameters. Detailed descriptions of these parameters are provided in the sections that follow. ![](https://media.help.cloudfiles.io/fa-create-salesforce-file/01.png) ## What this action does The CloudFiles: Create Salesforce File flow action enables copying an external storage file (identified/specified by its metadata) into Salesforce by creating a Salesforce File (Content Document) of the external storage file. For each such CloudFiles: Create Salesforce File action execution, a Content Version Created event is triggered on successful creation of the Salesforce File. This action can be paired with other flow actions or elements to streamline processes such as: - Bringing external storage files into Salesforce for enhanced accessibility. - Enabling these files to be used in Salesforce-based automations (e.g., email workflows). - Allowing integration with external applications designed to work with Salesforce Files. Example Use Case: Suppose you've integrated external storage like SharePoint, where customer-related files (e.g., proposals, contracts) are stored in dedicated folders. You want to automate the process of emailing a selected file to all related contacts: - File Selection: In a screen flow, present a list of file choices (e.g., file names mapped to file Ids) from the customer's folder. - Input to Action: The selected file's metadata is passed into the 'Create Salesforce File' action, which imports it into Salesforce as a Salesforce File. - Trigger CloudFilesEvent Flow: The published 'Content Version Created' event can link the file to the corresponding Salesforce account using a Content Document Link. - Email Automation: In a subsequent flow, fetch the file and email it as an attachment to the related contacts. This action provides a seamless way to bring external files into Salesforce and leverage Salesforce's robust automation capabilities. ## Input Parameters Let us discuss each of the input parameters in detail in the sections below. ### Drive Id This is important for Google Drive & SharePoint libraries only. The Drive Id is a unique identifier for a storage location in both SharePoint and Google Drive. In SharePoint, it represents a document library within a site, while in Google Drive, it identifies a user's drive or shared drive. > **Note** — You can get this parameter by viewing metadata details for a folder in the “Content Library” tab of CloudFiles app in Salesforce or can be fetched through other flow actions like Get Connected Folder. ### Library The Library parameter is the external storage type you are using. Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, cloudfiles (for AWS S3). ### FileId This is the Resource Id of the target file you wish to bring into Salesforce by creating a content Document/Salesforce File. > **Note** — You can get this parameter through other flow actions like Get Resource Details or by filtering Get Folder Contents. ### Record Id The Record Id parameter is used to identify and manage the origin of a created Salesforce File when a 'Content Version Created' event is triggered. Purpose: - Event Identification: Helps distinguish the source of the event in scenarios where multiple flows use the same action for different objects or use cases. - Content Document Linking: Enables creating a Content Document Link to associate the Salesforce File with a specific record. Key Features: - Flexible Input: You can input any text string, not just a Record Id. - Event Output: Whatever you input here will be available in the corresponding event details as Parent Id. ![](https://media.help.cloudfiles.io/fa-create-salesforce-file/02.png) How It Works: - Input the Record Id of the relevant record into this parameter. - When the event is triggered, the Record Id is included in the event details. - In the Platform Event Mode Flow Setup event-triggered flow, retrieve the Record Id from the event details to filter and process further automations, such as linking the file to the record. For example, if you want the created Salesforce File to be associated with an Account record, input the Account's Record Id into this parameter. In the event-triggered flow: - Fetch the Record Id from the event details. - Use the Content Document Link action to associate the created file with the Account. This parameter ensures traceability and flexibility in handling files across different flows and use cases. > **Note** — You can use this parameter not just to input a Record Id but literally any text string. Whatever, you input into the action shall be output in the corresponding Content Version Created.If you need to create Salesforce Files linked to a Contact record but in two separate scenarios:Scenario 1: Input "Scenario1_ContactRecordId" as the parameter.Scenario 2: Input "Scenario2_ContactRecordId" as the parameter.In the event-triggered flow:Fetch the parameter value from the event details.Use it to identify the Contact Record Id and differentiate between the two scenarios.This approach allows you to:Retrieve the Contact Record Id for further automation.Differentiate between events to handle specific actions based on the scenario. ## Output Parameters The CloudFiles: Create Salesforce File apex action does not return anything as an output in the flow it is used but for every scuccesful flow action execution or the Salesforce File created a Content Version Created is published. This event signals the completion of Salesforce file/ ContentDocument creation and can be used to trigger platform event flows to perform post-creation actions. > **Note** — If the action fails due to some reason, an error-event event will be triggered and this event can be used in a decision element to diagnose and handle the error. --- # Create Salesforce Files (Batch) https://help.cloudfiles.io/salesforce/create-salesforce-files-batch # Create Salesforce Files (Batch) The CloudFiles: Create Salesforce Files (Batch) flow action allows you to copy multiple files from external storage into Salesforce as Salesforce Files (Content Documents) in a single action. > Kind: Flow action · Updated: Jul 1, 2026 ## Introduction The CloudFiles: Create Salesforce Files (Batch) flow action allows you to copy multiple files from external storage into Salesforce as Salesforce Files (Content Documents) in a single action. This action functions similarly to the Create Salesforce File flow action, which handles a single file, but the batch version processes multiple files at once. By using a collection of metadata details as input, the action identifies and retrieves external files and creates their corresponding Salesforce Files. Once executed, the action makes all the Salesforce Files accessible and manageable within the Salesforce environment, streamlining bulk file operations and automations. Below is a visual representation of the action, with detailed descriptions of its input and output parameters provided in the subsequent sections. ![](https://media.help.cloudfiles.io/fa-create-salesforce-files-batch/01.png) ## What this action does The CloudFiles: Create Salesforce Files (Batch) flow action enables copying multiple external storage files (identified by their metadata details) into Salesforce as Salesforce Files (Content Document) in one action. Once all files are successfully created in Salesforce, a Content Version Created Batch is published. This action can be paired with other flow actions or elements to streamline processes such as: - Bringing multiple external storage files into Salesforce for enhanced accessibility. - Enabling bulk file operations within Salesforce-based automations (e.g., batch email workflows). - Integrating with external applications designed to work with Salesforce Files. ### Example Use Case: Suppose you've integrated external storage like SharePoint, where multiple customer-related files (e.g., proposals, contracts) are stored in dedicated folders. You want to automate the process of importing these files into Salesforce and emailing them to all related contacts: - File Selection: In a screen flow, display a list of file choices (e.g., file names mapped to file Ids) from the customer's folder. The user selects multiple files. - Input to Action: Pass the selected files' metadata as a collection (as a collection of cldfs__Resource) into the Create Salesforce Files (Batch) action. - Trigger CloudFiles Event Flow: Once all the files are successfully created, the published Content Version Created Batch can be used to link the files to the corresponding Salesforce account using Content Document Links. - Email Automation: In a subsequent flow, fetch the created Salesforce Files and email them as attachments to the related contacts. This action simplifies the process of importing multiple files into Salesforce while leveraging its robust automation capabilities. The batch processing ensures efficiency by handling multiple files in one go, and the event-driven architecture supports further automation seamlessly. ## Input Parameters Let us discuss each of the input parameters in detail in the sections below. ### Files The Files parameter accepts a collection of File Resources (i.e., a collection of cldfs__Resource) that contain metadata details for all the files to be copied into Salesforce as Salesforce Files. > **Steps to configure 'Files' Parameter** — Use Case Example: You want to import all files from an Account folder in connected SharePoint into Salesforce.Here’s how to configure the Files parameter for this scenario:Step 1: Retrieve all Files in the FolderUse the Get Folder Contents action to fetch all files within the folder.The action returns a collection of cldfs__Resource items, each containing the required fields:Drive Id: Identifies the external storage drive.Id: The unique file Id in the external storage system.Library: Specifies the storage type (e.g., SharePoint).Now, you have a collection of file resources representing all files in the folder.Step 2: Pass the Files Collection to the actionAssign this collection of cldfs__Resource to the Files parameter of the Create Salesforce Files (Batch) action.This allows the action to process each file in the collection, copying them into Salesforce.Example Snippet in a Flow:Use the Get Folder Contents action and store the output as a collection variable (e.g., FilesCollection).Pass FilesCollection into the Files parameter of the Create Salesforce Files (Batch) action. ### Salesforce Record Id The Salesforce Record Id parameter is used to identify and manage the origin of a created Salesforce Files when a Content Version Created Batch is published. Purpose: - Event Identification: Helps distinguish the source of the event in scenarios where multiple flows use the same action for different objects or use cases. - Content Document Linking: Enables creating a Content Document Links to associate the Salesforce Files with a specific record. Key Features: - Flexible Input: You can input any text string, not just a Record Id. - Event Output: Whatever you input here will be available in the corresponding event details as Parent Id. ![](https://media.help.cloudfiles.io/fa-create-salesforce-files-batch/02.png) How it works: - Input the Record Id of the relevant record into this parameter. - When the event is triggered, the Record Id is included in the event details. - In the Platform Event Mode Flow Setup event-triggered flow, retrieve the Record Id from the event details to filter and process further automations, such as linking the file to the record. For example, if you want the created Salesforce Files to be associated with an Account record, input the Account's Record Id into this parameter. In the event-triggered flow: - Fetch the Record Id from the event details. - Use the Content Document Link action to associate the created file with the Account. This parameter ensures traceability and flexibility in handling files across different flows and use cases. > **Note** — You can use this parameter not just to input a Record Id but literally any text string. Whatever, you input into the action shall be output in the corresponding Content Version Created.If you need to create Salesforce Files linked to a Contact record but in two separate scenarios:Scenario 1: Input "Scenario1_ContactRecordId" as the parameter.Scenario 2: Input "Scenario2_ContactRecordId" as the parameter.In the event-triggered flow:Fetch the parameter value from the event details.Use it to identify the Contact Record Id and differentiate between the two scenarios.This approach allows you to:Retrieve the Contact Record Id for further automation.Differentiate between events to handle specific actions based on the scenario. ## Output Parameters The CloudFiles: Create Salesforce Files (Batch) apex action does not return anything as an output in the flow it is used but for every scuccesful flow action execution or once all the Salesforce Files created a Content Version Created Batch event is published. This event signals the completion of creationSalesforce Files/ ContentDocuments creation and can be used to trigger platform event flows to perform post-creation actions. > **Note** — If the action fails due to some reason, an error-event event will be triggered and this event can be used in a decision element to diagnose and handle the error. --- # Create SharePoint Site (Flow Action) https://help.cloudfiles.io/salesforce/create-sharepoint-site # Create SharePoint Site The CloudFiles: Create SharePoint Site flow action allows users to automate the creation of new SharePoint sites directly from Salesforce. This is particularly useful for organizations that need to quickly spin up collaboration spaces for projects, teams, or departments without manual intervention. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Create SharePoint Site flow action allows users to automate the creation of new SharePoint sites directly from Salesforce. This is particularly useful for organizations that need to quickly spin up collaboration spaces for projects, teams, or departments without manual intervention. > **SharePoint Rest API Authorization is a Pre-Requisite to use this flow action** — SharePoint Rest API Authorization is required for certain flow actions like Site creation.Navigate to CloudFiles > Document Management > Libraries > SharePoint to configure the same. The image below provides an overview of the input parameters and how this action appears in a Salesforce flow. Detailed descriptions of the input and output parameters are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-create-sharepoint-site/01.png) ## What this action does The Create SharePoint Site action simplifies the process of provisioning SharePoint sites through automation. Scenario: For instance, when a new account is created in Salesforce, a corresponding SharePoint site can be automatically generated using this action. The site can be tailored to the specific needs of the account, such as hosting documents, managing tasks, or collaborating with the client’s team. This automation eliminates the need for manual setup and ensures consistency across your SharePoint environment. > **Important:** — Important: Microsoft 365 tenants can contain up to 2 million SharePoint sites across the organization. CloudFiles automated site creation flows will count toward this limit. If your tenant is near this limit, site creation may fail. ## Input Parameters The following input parameters are required to configure the Create SharePoint Site action: ### Admins Description: A list of email addresses that will be granted admin-level access on the created site at the time of site creation. Use case: Provision SharePoint access at scale from a Salesforce flow — create a site group per account, bulk-add contacts as members, and apply custom SharePoint roles without being limited to the three default roles. > **Notes:** — Notes: Each email must correspond to a valid user in your Microsoft 365 organization.Multiple emails can be provided, and all listed users will be provisioned as Site Collection Admins upon site creation. ### Description Description: A brief summary explaining the site's purpose or content. Where it shall be displayed: Navigate to the SharePoint site. Go to Settings (gear icon) > Site Information. The Description field is visible here. ### Design ID Description: A unique identifier for the site's design, referring to a site design or customization for layout, branding, or functionality. How to Get It: Available in the SharePoint Admin Center: Open Microsoft 365 Admin Center > SharePoint Admin Center. Select the site from the Active Sites list. Custom site designs are often applied using PowerShell or site scripts. ### Language Code Description: Specifies the language of the site using an ISO language code (e.g., 1033 for English, 1036 for French). If not, Input Default Language shall be Organisation's Default Language. Where to find current Language: Go to Settings > Site Settings > Language Settings in SharePoint. > **Note** — Check Languages supported by SharePoint for more information. ### Site Name Description: Input the display name of the site, reflecting its purpose (e.g., Marketing Team). > **Site Name ** — Site Name is a mandatory Input Parameter ### Site URL Description: Configure and input the web address for accessing the site, typically in the format: https:// **Site URL ** — Site URL is a mandatory input parameter. ### Template ID Description: Identifies the template used to create the site, determining its structure and features (e.g., STS#0 for a Team Site). How to Get It: Use PowerShell with the command: Get-SPOSite -Identity Alternatively, check the SharePoint Admin Center for certain configurations. > **Note** — Here are some common SharePoint site's template Ids:STS#0: Classic Team SiteAPPCATALOG#0: App Catalog SiteBDR#0: Document CenterBICenterSite#0: Business Intelligence CenterSITEPAGEPUBLISHING#0: Publish dynamic content to keep people informedGROUP#0: For reporting onlyPOINTPUBLISHINGPERSONAL#0: For reporting onlySPSPERS#10: For reporting onlyPWA#0: Project Web App SitePWS#0: Microsoft Project SiteSGS#0: Group Work SiteSPS#0: SharePoint Portal Server Site site template ## Output Parameters ![](https://media.help.cloudfiles.io/fa-create-sharepoint-site/02.png) ### Primary Drive ID The unique identifier for the SharePoint site's primary document library. ### Site ID A unique identifier for the created SharePoint site. ### Site Name The display name of the created site. ### Site URL The web address for accessing the newly created site. --- # Create SharePoint Drive (Flow Action) https://help.cloudfiles.io/salesforce/create-sharepoint-drive # Create SharePoint Drive The CloudFiles: Create SharePoint Drive flow action allows users to automate the creation of new SharePoint drives directly from Salesforce. This is particularly useful for organisations that need to quickly spin up collaboration spaces for projects, teams, or departments without manual intervention. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Create SharePoint Drive flow action allows users to automate the creation of new SharePoint drives directly from Salesforce. This is particularly useful for organisations that need to quickly spin up collaboration spaces for projects, teams, or departments without manual intervention. The image below provides an overview of the input parameters and how this action appears in a Salesforce flow. Detailed descriptions of the input and output parameters are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-create-sharepoint-drive/01.png) ## What this action does The Create SharePoint Drive action simplifies the process of provisioning SharePoint drives through automation. Scenario: For instance, when a new account is created in Salesforce, a corresponding SharePoint drive can be automatically generated using this action. The drive can be tailored to the specific needs of the account, such as hosting documents, managing tasks, or collaborating with the client’s team. This automation eliminates the need for manual setup and ensures consistency across your SharePoint environment. > **Note:** — Note: SharePoint has a limitation that a maximum of 2000 drives (or document libraries) can be created within a particular site. This flow action will throw an error if the number exceeds beyond that. ## Input Parameters The following input parameters are required to configure the Create SharePoint Drive action: ### Drive Name Description: Input the display name of the drive, reflecting its purpose (e.g., Marketing Team). > **Drive Name ** — Site ID is a mandatory input parameter. ### Site ID Description: Configure and input the site address for setting up the drive. > **Site ID ** — Site ID is a mandatory input parameter. ### Content Types Description: Define content types for the drive. When multiple content types are specified, the order in which content types are provided determines their priority — the first entry takes the highest precedence. > **Note** — User-defined content types will take preference over the default content types set for the drive. ### Disable Inherited Permissions Description: Set to 'true' to prevent the new drive from inheriting permissions from its parent SharePoint site. When enabled, the drive will have no inherited permissions — you can instead define access by grouping users and assigning permissions directly. Defaults to 'false' (permissions are inherited from the site). ### Site Columns Description: Define site columns for the drive. > **Note** — How to use Site Columns ? Step 1: Create a apex defined variable of apex class cldfs__DriveColumnStep 2: In an assignment variable assign values for the variable properties (apiName, defaultValue, label). apiName and defaultValue are mandatory.Step 3: Create an apex defined collection variable and add the individual variable to it.Step 4: Pass the collection variable into the Site Columns field > **Site columns** — Site columns are reusable column definitions (fields) that can be associated with a drive to standardise the metadata captured across documents and items. > **Note** — If both contentTypes and siteColumns are added to the action the columns will be ignored. ## Output Parameters ![](https://media.help.cloudfiles.io/fa-create-sharepoint-drive/02.png) ### Drive ID A unique identifier for the created SharePoint drive. ### External URL The external URL for the newly created SharePoint drive, which can be used to directly access the drive from outside Salesforce. --- # Delete Attachment (Flow Action) https://help.cloudfiles.io/salesforce/lD4N-delete-attachment # Delete Attachment Learn how to easily disconnect files or folders from Salesforce records using the "Delete Attachment" action in Salesforce flows. This comprehensive document guides you through the process of adding the action to a flow and configuring which attachment to remove. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Delete Attachment flow action is the reverse of the Create Attachment action. It allows you to disconnect an already linked resource (file or folder) from a Salesforce record. Once disconnected, the file or folder will no longer appear in the CloudFiles Widget on the Salesforce record's page. The image below illustrates a sample flow using Delete Attachment action to remove a linked resource from a Salesforce record. Detailed explanations of input parameters and usage are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-delete-attachment/01.png) ## What this action does The Delete Attachment action automates the process of unlinking or disconnecting external storage resources from Salesforce records, ensuring that only relevant files or folders remain associated with a record. Scenario: Imagine an automation where files or folders linked to an opportunity need to be removed after the opportunity is closed or lost. Using the Delete Attachment action, you can disconnect these resources, ensuring they no longer appear in the CloudFiles widget on the Opportunity record page. ## Input Parameters When adding the CloudFiles: Delete Attachment action in Flow Builder, configure the following input parameters: ### Library Description: The external storage service where the resource is located. Valid Values: sharepoint, google, azure,onedrive, dropbox, box, or cloudfiles (AWS S3). ### Resource ID Description: The unique ID of the resource (file or folder) to be disconnected. How to Get It: Use the output of a previous flow action like Get Connected Folder or Get Resource Details to retrieve the resource ID. For example, {!Outputs from Get Connected Account Folder} > Resource ID. Or use record fields which have Resource Id stored in them. ### Resource Type Description: Indicates whether the resource is a file or a folder. Valid Values: file or folder ### Salesforce Record ID Description: The ID of the Salesforce record from which the resource will be disconnected. Example: Use {!$Record.Id} in a record-triggered flow or specify a dynamic value such as {!Triggering Account} > Account ID. ## Output Parameters The Delete Attachment action does not return any explicit output parameters. However, once executed successfully, the specified resource will be disconnected from the record. You can verify this by: Checking the CloudFiles widget on the Salesforce record page. Ensuring the resource no longer appears in the widget. --- # Delete Resource (Flow Action) https://help.cloudfiles.io/salesforce/delete-resource # Delete Resource The CloudFiles: Delete Resource flow action allows you to delete a resource (file or folder) in a connected external storage, such as SharePoint, Google Drive, Dropbox, Box, or AWS S3. For SharePoint it can also delete a whole drive (document library) or an entire site. This action can handle the deletion of a single resource or multiple resources in one execution. > Kind: Flow action · Updated: Aug 25, 2026 ## Introduction The CloudFiles: Delete Resource flow action allows you to delete a resource (file or folder) in a connected external storage, such as SharePoint, Google Drive, Dropbox, Box, or AWS S3. For SharePoint, it can also delete a whole drive (document library) or an entire site. This action can handle the deletion of a single resource or multiple resources in one execution, providing flexibility for various use cases. The image below demonstrates how the Delete Resource action looks. Detailed explanations of input parameters and usage are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-delete-resource/01.png) ## What this action does? The Delete Resource action simplifies the management of external storage by enabling users to automate the deletion of unnecessary or outdated files and folders directly from Salesforce. Imagine a workflow where Account Folders are automatically deleted from external storage if the associated Salesforce Account record is archived. Using the Delete Resource action, you can: - Trigger a flow on Account Record Deletion to delete the associated Account Folder using the Folder ID stored in one of the Account record fields. - Use a custom object that stores metadata details for folders linked to deleted records. A Scheduled Trigger Flow can then process these records and delete the resources accordingly. This action ensures that your external storage remains organized and clutter-free without requiring manual intervention. ## Input Parameters To use the CloudFiles: Delete Resource action in Flow Builder, configure the following input parameters: ### Library - Description: The external storage service where the Resource/s is located. - Valid Values: sharepoint, google, onedrive, dropbox, box, or cloudfiles (AWS S3). ### Drive ID - Description: The drive ID for Google Drive or SharePoint where the Resource/s to be deleted resides. - Required For: Google Drive, SharePoint. - How to Get It: - Use the output of previous flow actions like Get Connected Folder to retrieve the Drive ID. - Or retrieve this from the Content Library Tab in Salesforce using the "View Metadata" button. - Deleting a drive or a site: when Resource Type is drive, enter the ID of the drive you are deleting — the same value you put in Resource ID. When Resource Type is site, leave Drive ID blank. See Deleting SharePoint drives and sites. ### Resource ID - Description: The unique ID of the resource (file or folder) to be deleted. - How to Get It: - Use the output of previous flow actions like Get Connected Folder or Get Resource Details to retrieve the resource ID. For example, {!Outputs from Get Connected Account Folder} > Resource ID. - Alternatively, use record fields where Resource IDs are stored. - For a drive or a site: enter the drive ID or the site ID. Use the output of Create SharePoint Drive or Create SharePoint Site, or a record field where the ID is stored. ### Resource IDs - Description: The unique ID of the resource (file or folder) to be deleted. - How to Get It: - Configure a Text Collection by utilising outputs from flow actions like Get Folder Contents or Get Resource Details to retrieve the resource IDs. For example, create a Text Collection by retrieving the Resource IDs of folder contents {!Outputs from Get Folder Contents} > Resource ID. - Or use record fields which have Resource Id stored in them. ### Resource Type (Not needed for Multiple Resource Deletion) - Description: Indicates what kind of resource is being deleted. - Valid Values: file, folder, drive or site. drive and site apply to SharePoint only. ## Deleting SharePoint drives and sites On SharePoint, the Delete Resource action deletes drives (document libraries) and sites as well as files and folders. It is the same action — set Library to sharepoint, and change Resource Type and the IDs you pass. | Resource Type | Drive ID | Resource ID | |---|---|---| | file or folder | The ID of the drive the file or folder lives in | The ID of the file or folder | | drive | The ID of the drive being deleted | The same drive ID | | site | Leave blank | The ID of the site being deleted | > **Deleting a drive or a site removes everything inside it** — Deleting a drive deletes every file and folder in that document library. Deleting a site deletes the site and all of the drives it contains, including any folders CloudFiles has connected to Salesforce records — those attachments will point at resources that no longer exist. This cannot be undone from Salesforce. Test the flow against a spare site before you activate it. Where to get the IDs: the Create SharePoint Site action returns Site ID and Primary Drive ID, and Create SharePoint Drive returns Drive ID. Store them on the record at creation time so the flow that deletes them later has the IDs to hand. Drive IDs are also on the Content Library Tab in Salesforce, under the "View Metadata" button. ## Output Parameters The Delete Resource action does not return explicit output parameters. However, once executed, the specified resources will be permanently deleted from the external storage. You can verify the deletion by checking the external storage to confirm the resource is no longer present. For a drive or a site, confirm in the SharePoint admin center that the document library or site no longer appears. --- # Get Attachments (Flow Action) https://help.cloudfiles.io/salesforce/get-attachments-flow-action # Get Attachments Learn how to efficiently retrieve all attachments associated with a record in Salesforce using the "Get Attachments" flow action. This comprehensive guide walks you through the process of adding the action to a flow and fetching the resources connected to a record. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Get Attachments flow action allows you to retrieve all the Resource (files or folders) connected to a Salesforce record through CloudFiles. These linked resources, referred to as "Attachments" can be connected using the Create Attachment action or are connected manually to a Salesforce record via CloudFiles widget. This action can be used to fetch a collection of these attachments in a Salesforce Flow. This is particularly useful when managing multiple resources connected to a single record. > **Note: ** — Note: If a record has only one connected folder, and you want to retrieve its details, it is more efficient to use the Get Connected Folder action instead. ## What this action does The Get Attachments action takes Salesforce Record ID as an input and outputs a collection of all attachments linked to that record. Each attachment includes metadata details of the connected resources, enabling advanced flow configurations and automations. Example Use Case An Account record has multiple attachments linked via CloudFiles. You can use the Get Attachments action to retrieve all these attachments. This collection can then be used for further processing, such as: Deleting all attachments related to a Lead, identified by a specific naming convention like "Lead" in their terms. Archiving or moving these resources to another location based on workflow triggers. ## Input Parameters ### Parent ID The Salesforce Record ID for which attachments need to be retrieved. ## Output Parameters The apex action outputs apex-defined Attachment Collection. Each Attachment in the collection, Record ID The Salesforce Record Id. Resource Properties Resource ID: External ID of the resource. Name: Name of the attached resource. Path: The path of the resource in external storage. Type: Type of the resource ("file" or "folder"). Library: External storage service used. Drive ID: Relevant for Google Drive or SharePoint. --- # Get Connected Folder (Flow Action) https://help.cloudfiles.io/salesforce/get-connected-folder-flow-action # Get Connected Folder Learn how to use the "Get Connected Folder" flow action in Salesforce to easily retrieve a specific folder attachment for a record. Find out how to add this action to your flow and understand the necessary input and output parameters. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The "Get Connected Folder" flow action can retrieve folder-type attachments for a Salesforce record, for example the Account Parent folder details. If multiple folders are attached, it retrieves the first folder's details. To handle scenarios with multiple folders, we use a different approach. For more details, please refer Create Automated Folder Hierarchies for Managing External Files from Salesforce Objects The image below illustrates what this action looks like, including its various input and output parameters. Detailed descriptions of these parameters are provided in the following section. ![](https://media.help.cloudfiles.io/fa-get-connected-folder/01.jpg) The Get Connected Folder action requires the following parameters - - Parent ID - This is the Id of the Salesforce record for which you want to retrieve the attachment. This action gives various parameters of the newly obtained resource’s destination parameters - - Resource ID - Folder ID of the newly retrieved resource - Resource Name - Name of the newly retrieved resource - Other parameters - Parameters specifying the location of created resource In this article we will first dive into the details of the input & output parameters and then discuss how this action can be used in different scenarios. ## What this action does This action retrieves the details of a folder attached to a Salesforce record. If multiple folders are attached, only the first attached folder will be considered. ## Input Parameters This flow action takes only 1 parameter, which is the "Parent Id". ### Parent ID The Parent ID is the ID of the Salesforce record for which you want to retrieve the attachment. This can be obtained from the flow's "Record" variable in record-triggered flows or from the flow's “Triggering_cldfs_CloudFiles_Event_e” record in platform event-triggered flows. In the Parent ID field, select 'SalesforceFiles' > 'ParentId'. For example, in the Parent ID field, select 'Outputs from CloudFiles: Get Event Details (Get Uploaded Files Details)' > 'Salesforce Files Details' > 'ParentId'. Refer to the image shown below- ![](https://media.help.cloudfiles.io/fa-get-connected-folder/02.png) ## Output Parameters The Apex action returns the following details of the connected folder. You can choose to save them somewhere if you wish to use it later. ### Resource ID This is the ID of the newly created folder. This is used as parent folder ID for subsequent sub folders. This ID is crucial for specifying the exact location within the storage service hierarchy where the folder should be placed. ### Drive ID This is the Drive ID of the drive where the folder got created. This Id remains constant for sub folders. It specifies the exact location within the storage service where the folder should be placed. ### Library This is the Cloud Storage in which the folder got created. One can use any external storage for example google, sharepoint etc. ### Resource Name This is the name of the newly created folder. Used to identify the folder within storage service. ### Resource Path This is the Cloud storage path of the newly created folder. It specifies the particular endpoint and resource you want to interact with, such as records, objects, or custom resources. ### Type This is the Type of the resource. It will always be 'folder'. Used for classifying the resource type in create attachment. --- # Get Files Connect Resource Id (Flow Action) https://help.cloudfiles.io/salesforce/get-files-connect-resource-id # Get Files Connect Resource Id Learn how to easily obtain the "Files Connect Resource Id" for files or folders stored in external storage with this comprehensive document. Discover the necessary configuration settings, such as Drive Id, Folder Id, and Library, needed to use the action. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction This action can be used to get "Files Connect Resource Id" for a file/folder stored in external storages. The "Files Connect Resource Id" can be used further in the action Create File Connect Files. ## Configuration - Drive Id - Drive Id in external storage where file should be copied. Only applicable for SharePoint & Google Drive. - Folder Id - Id of the folder in external storage where the file should be copied to. - Library - one of sharepoint, google, onedrive, box, dropbox, cloudfiles Please leave the other 2 fields toggled off - Resource Name & Type > **Note** — You can get the values of DriveId, FolderId, Library from the Content Library tab. ## Return Value Files Connect Resource Id, which can be used on the action Create File Connect Files. --- # Get Folder Contents (Flow Action) https://help.cloudfiles.io/salesforce/get-folder-contents # Get Folder Contents The Get Folder Contents flow action outputs all the files and folders within a queried external storage folder as a collection of resources. The output collection can then be used in flow elements further down the flow. > Kind: Flow action · Updated: Jul 1, 2026 ## Introduction The Get Folder Contents flow action outputs all the files and folders within a queried external storage folder as a collection of resources. The output collection can then be used in flow elements further. The image below gives an overview of the input parameters. Detailed description of these parameters are provided in the following section. ![](https://media.help.cloudfiles.io/fa-get-folder-contents/01.jpg) ## What this action does The Get Folder Contents flow action can be combined with various other flow actions or elements to automate processes. For example, you can perform a simple null check on the output collection to determine if the queried folder is empty, or apply more complex logic, such as looping through the collection to segregate files based on naming conventions. The flow snippet below demonstrates a use case where the Get Folder Contents action retrieves the contents of a template folder with a predefined sub-folder structure. The output collection is then looped over to replicate this structure into another folder, creating each sub-folder one by one with the same name as the current folder in the loop. ![](https://media.help.cloudfiles.io/fa-get-folder-contents/02.png) ## Input Parameters This action requires the metadata of the target folder to retrieve its contents. The image below shows the mandatory fields populated for reference- ![](https://media.help.cloudfiles.io/fa-get-folder-contents/03.png) Each parameter is explained in detail below. ### Library The Library parameter is the external storage type you are using. Possible values are sharepoint, google, azure,onedrive, dropbox, box, or cloudfiles (AWS S3). > **Note** — This is a mandatory input parameter. ### Drive Id This is important for Google Drive & SharePoint libraries only. The Drive ID is a unique identifier for a storage location in both SharePoint and Google Drive. In SharePoint, it represents a document library within a site, while in Google Drive, it identifies a user's drive or shared drive. > **Note** — This is a mandatory input parameter. ### Resource Id This is the folder Id of the target folder whose contents are to be retrieved. > **Note** — This is a mandatory input parameter. You can get these three parameters by viewing metadata details for a folder in the “Content Library” tab of CloudFiles app in Salesforce or can be fetched through other flow actions like Get Connected Folder. ### Resource Path > **Note** — This parameter is not in use currently and can be toggled off. ### Resource Name > **Note** — This parameter is not in use currently and can be toggled off. ### Type > **Note** — This parameter is not in use currently and and can be toggled off. ## Output Parameters The action returns all the contents of the input folder as a collection of resources. ## See it in Action In the GIF below, it is shown how the flow action retrieves the contents from a folder. ![](https://media.help.cloudfiles.io/fa-get-folder-contents/04.gif) --- # Get Resource Details (Flow Action) https://help.cloudfiles.io/salesforce/get-resource-details # Get Resource Details The Get Resource Details flow action allows you to retrieve comprehensive metadata details of an external storage resource by inputting known metadata information, even if only a few parameters are available. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The Get Resource Details flow action allows you to retrieve comprehensive metadata details of an external storage resource by inputting known metadata information, even if only a few parameters are available. The diagram below offers an overview of the input parameters and includes a visual representation of the flow action. Detailed explanations of each input parameter and the corresponding outputs will be provided in the following sections. ![](https://media.help.cloudfiles.io/fa-get-resource-details/01.jpg) ## What this action does The Get Resource Details flow action accepts certain combinations of input paramaters i.e. metadata details of a resource and returns the complete metadata information as output. For instance, consider the following use case: when a new Account record is created, an Account folder is generated, along with a subfolder named "Opportunities" to store folders for all related Opportunity records. To create an Opportunity folder within the "Opportunities" subfolder (located under the corresponding Account folder), you need the Folder Id of the "Opportunities" subfolder. While you can use the Get Connected Folder action to find the Account folder by setting the Parent Id to the Opportunity's Account Id, you can't directly retrieve the Folder Id of the "Opportunities" subfolder. In this case, you know that there is a subfolder named "Opportunities" within the Account folder. Therefore, the subfolder's path can be formulated as the Account folder's path followed by "/Opportunities". This is where the Get Resource Details flow action is useful. By inputting the known metadata details such as Library, Drive Id, Resource Path, and Resource Type, you can retrieve the Resource Id (the subfolder’s Id). This Resource Id can then be used to create an Opportunity folder within the Opportunities subfolder. ![](https://media.help.cloudfiles.io/fa-get-resource-details/02.jpg) Similarly, if you know the Library, Drive Id, Resource Path and Resource Type but do not have the Resource Id, you can retrieve the same using this action. > **Note** — Since Google Drive does not have a Resource Path, retrieving Resource Id using Library, Drive Id, Resource Path and Resource Type is NOT possible.However you can use this for SharePoint and DropBox libraries. ## Input Parameters Let us discuss each of the input parameters in detail in the individual sections given below. ### Drive Id This is important for Google Drive & SharePoint libraries only. The Drive Id is a unique identifier for a storage location in both SharePoint and Google Drive. In SharePoint, it represents a document library within a site, while in Google Drive, it identifies a user's drive or shared drive. > **Note** — This is a mandatory input parameter. > **Note** — You can get this parameter by viewing metadata details for a folder in the “Content Library” tab of CloudFiles app in Salesforce or can be fetched through other flow actions like Get Connected Folder. ### Library The Library parameter is the external storage type you are using. Possible values are sharepoint, google (for Google Drive), onedrive, azure, dropbox, box, cloudfiles (for AWS S3). > **Note** — This is a mandatory input parameter. ### Resource Id This is the folder Id of the target folder whose resource we want to be fetch. > **Note** — It is mandatory to fill either Resource Id or Resource Path. ### Resource Path This is the path to the target folder whose resource we want to be fetch. > **Note** — It is mandatory to fill either Resource Id or Resource Path. > **Note** — In order to retrieve File Resource details using Resource Path, the input Resource Path parameter must include file name along with extension. ### Resource Type Specify fileor folder based on the type of Resource you are querying. > **Note** — It is NOT mandatory and can be excluded. ## Output Parameters The action returns complete metadata information of the queried Resource. ![](https://media.help.cloudfiles.io/fa-get-resource-details/03.png) ### Drive Id The Drive Id of the queried Resource. ### Library The Library of the queried Resource. ### Resource Id The Resource Id of the queried File or Folder Resource. ### Resource Name The Name of the queried Resource. > **Note** — In case, queried Resource Type = file, the Resource Name is output along with extension. ### Resource Path The complete Path for the queried Resource in the external storage . > **Google Drive** — Google Drive does not have a Resource Path.You can use this for SharePoint and DropBox. ### Type The Resource Type of the queried Resource i.e. file or folder ## See it in Action The GIF below illustrates the use case discussed in the previous section: creating an Opportunity folder for each Opportunity record within the Opportunities subfolder of the corresponding Account’s folder. ![](https://media.help.cloudfiles.io/fa-get-resource-details/04.gif) --- # Get Resource Property https://help.cloudfiles.io/salesforce/get-resource-property # Get Resource Property The CloudFiles: Get Resource Property flow action allows you to retrieve specific property values of a specific Resource. This includes SharePoint column values and standard properties from other supported libraries. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Get Resource Property flow action allows you to retrieve specific property values of a specific Resource. This includes: - A SharePoint Resource's Column Value. - Standard properties from other supported libraries (Eg: A Google Drive Folder's URL). This action is ideal for scenarios where precise metadata details are required for automations or decision-making processes within a flow. By fetching and using these property values, you can create dynamic and efficient workflows tailored to your business needs. ![](https://media.help.cloudfiles.io/fa-get-resource-property/01.png) ## What this action does The CloudFiles: Get Resource Property flow action flow action allows you to: - Specify the target Resource using its metadata details. - Specify the Property whose value is to be fetched using the Property's API Name. - Get the Property Value as a Text Output, which can be further used in the flow. Example Use Case 1 Scenario: In Salesforce, you have an automation that creates a Google Drive folder for every Opportunity record created. Additionally, you want the Google Drive URL of the newly created folder to be automatically populated into a custom field on the Opportunity record. To achieve this, you can use the CloudFiles: Get Resource Property flow action to fetch the externalUrl property of the created folder and update the Opportunity record's relevant field. Below is the flow snippet of the example Use Case: ![](https://media.help.cloudfiles.io/fa-get-resource-property/02.png) Example Use Case 2 Scenario: Salesforce users upload Opportunity-related files to SharePoint folders using CloudFiles LWCs. They tag these files using SharePoint columns like: - Document Type (choices: Agreement, Proposal, Marketing Collateral, Other) - Document Status (choices: In Review, Draft, Final) ![](https://media.help.cloudfiles.io/fa-get-resource-property/03.png) When a file's column values are updated from the CloudFiles LWC, a Resource Updated Event is published. Suppose you want to automate the process of moving a Proposal file to a different folder whenever its Document Status is set to Final. Steps to Automate: - Trigger Automation: Configure a flow to start whenever a Resource Updated Event is published. - Filter Events: Use decision elements to filter events based on the folder’s originating record type (e.g., Opportunity). - Retrieve Column Values: - Use the Get Resource Property action to fetch the Document Type column value of the updated resource. - If DocumentType = Proposal, fetch the DocumentStatus column value. - Perform Conditional Actions: If the DocumentStatus = Final, execute further actions, such as moving the file to a different location. Below is the flow snippet of the Example Use Case: ![](https://media.help.cloudfiles.io/fa-get-resource-property/04.png) ## Input Parameters ### Resource The Resource parameter is used to specify the Resource (File or Folder) whose Property Value is to be fetched. > **How to Configure the Resource Parameter** — If you do not have the Resource parameter directly available, you can configure it by:Creating a cldfs_Resource variable in your flow.Assigning the Resource's metadata details (e.g., DriveId, Id, Library) to the variable.These metadata details can be obtained from:CloudFiles Event Details, such as:Resource Updated File Uploaded Resource ClonedAny OtherCloudFiles Flow Actions, such as: Get Folder Contents Get Resource Details Any Other ### Property Name Input the File/Folder's (Resource) Property API Name in the external storage whose value must be updated/set. > **Where to find the Property's API Name** — Find the API Names of Properties directly from the External Storage Library.Alternatively, within Salesforce, go to:CloudFiles App > Document Management > Widget ConfigurationIn the Widget Columns section, add required Columns to check their API Names by Navigating to the location or Document Library, locate the column, and find its API Name (displayed in brackets next to the Column Name). > **List of few Standard SharePoint Property Names** — name - gives the name of the resourcedescription - gives the description of the resourceid - gives the ID of the resourcedriveId - gives the drive ID of the resourcelibrary - gives the library that the resource is inexternalUrl- gives the cloud drive URL of the resourcepath - gives the path of the resource in the cloud drivetype - gives the type of resource (file/folder)size - gives the size of the resourcecreatedAt - gives the date of creation of the resource (not present in dropbox)updatedAt - gives the date when the resource was last updatedextension - gives the extension of the resource ## Output Parameters The CloudFiles: Get Resource Property flow action provides the output value of the specified property as a Text Variable. > **How to identify the Output Variable ?** — The output Text Variable can be identified by the action's label name. For example:If the action is labeled as "Get DocumentType Column Value", the output Text Variable will be named: Text from Get DocumentType Column Value > **Does the Output vary based on Column/Property type ?** — No, the output of the CloudFiles: Get Resource Property flow action is always a Text value, regardless of the type of column or property queried.If a Date Property is queried, the output will be a text string like 12/23/2024.If a Yes/No Column is queried, the output will be text like TRUE or FALSE.This consistent output format ensures compatibility with various flow elements and simplifies automation configurations. --- # Get Salesforce Files (Flow Action) https://help.cloudfiles.io/salesforce/get-salesforce-files # Get Salesforce Files The CloudFiles: Get Salesforce Files flow action enables retrieval of Ids of all Salesforce files attached to a specific Salesforce record. This is particularly useful when you need to perform further operations on these files, such as processing, sharing, or deleting them in bulk. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Get Salesforce Files flow action enables retrieval of Ids of all Salesforce files attached to a specific Salesforce record. This is particularly useful when you need to perform further operations on these files, such as processing, sharing, or deleting them in bulk. By incorporating this action into your Salesforce flow, you can automate tasks involving Salesforce Files, enhancing efficiency and reducing manual effort. The image below provides an overview of the input parameters and how this action appears in a Salesforce flow. Detailed descriptions of the input and output parameters are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-get-salesforce-files/01.png) ## What this action does The CloudFiles: Get Salesforce Files action takes the Id of a Salesforce record as input and retrieves a Text Collection containing the ContentDocumentIDs of all Salesforce Files attached to that record. These Ids can be used for various purposes, such as triggering further automation or integrating with other systems. Example Use Case: Automating Salesforce file copying into external storage and deleting from Salesforce. For example, for Opportunity records, when an Opportunity is closed, retrieve all attached Salesforce files, copy them into the connected external storage and delete the Salesforce files once copied. ## Input Parameters To configure the Get Salesforce Files action, provide the following parameter: ### Record Id The Record Id of the Salesforce Object whose linked Content Documents (Salesforce files) need to be retrieved. ## Output Parameters The action returns the following output: ![](https://media.help.cloudfiles.io/fa-get-salesforce-files/02.png) ### Text Collection of ContentDocumentIDs ![](https://media.help.cloudfiles.io/fa-get-salesforce-files/03.png) A collection of ContentDocumentIDs for all Salesforce files linked to the specified record. These Ids can be passed to other flow actions for further processing, such as copying into external storage or deleting the Salesforce files etc. > **Use Caution** — The action cannot Output Ids of Salesforce Attachments i.e. the Old Salesforce Classic's File format. --- # Get Shared Resources https://help.cloudfiles.io/salesforce/get-shared-resources # Get Shared Resources The CloudFiles: Get Shared Resources flow action allows you to retrieve all the resources (files or folders) that have been shared with a Salesforce community through CloudFiles. These shared resources can be accessed by community users and are made available through CloudFiles sharing capabilities. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Get Shared Resources flow action allows you to retrieve all the resources (files or folders) that have been shared with a Salesforce community through CloudFiles. These shared resources can be accessed by community users and are made available through CloudFiles sharing capabilities. This action can be used to fetch a collection of these shared resources in a Salesforce Flow. This is particularly useful when managing multiple resources that have been shared with community members or need to be processed in bulk. > **Note: ** — Note: This action specifically retrieves resources shared at the community level, which is different from attachments linked to individual records. ## What this action does The Get Shared Resources with Community Resources action takes a Salesforce Record ID as an input and outputs a collection of all resources that have been shared with the community associated with that record. Each resource includes metadata details, enabling advanced flow configurations and automations for community-shared content. Example Use Case A community has multiple files and folders shared with its members through CloudFiles. You can use the Get Shared Resources action to retrieve all these shared resources. This collection can then be used for further processing, such as: Identifying and removing outdated resources shared with the community based on naming conventions or metadata. Generating reports on all resources currently available to community members. Archiving or reorganizing shared resources based on workflow triggers or scheduled maintenance. Implementing governance policies by auditing what content is accessible to external users. ## Input Parameters ### Parent ID The Salesforce Record ID for which shared community resources need to be retrieved. ## Output Parameters The apex action outputs apex-defined Attachment Collection. Each Attachment in the collection, Record ID The Salesforce Record Id. Resource Properties Resource ID: External ID of the resource. Name: Name of the attached resource. Path: The path of the resource in external storage. Type: Type of the resource ("file" or "folder"). Library: External storage service used. Drive ID: Relevant for Google Drive or SharePoint. --- # Move Resource https://help.cloudfiles.io/salesforce/move-resource # Move Resource Learn how to efficiently move files and folders using the "Move Resource" action. This comprehensive document provides step-by-step instructions on configuring parameters such as external storage type, source, and destination. > Kind: Flow action · Updated: Jul 1, 2026 ## Introduction The CloudFiles: Move Resource action enables you to move a resource (file or folder) from one location to another within the same external storage drive. This action is particularly useful in automations where resources need to be re-organized based on workflow changes. The image below gives an overview of the input parameters and what this action looks like. Detailed description of these input parameters and outputs are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-move-resource/01.png) ## What this action does? The Move Resource action transfers a specified file or folder from its current location to a new destination within the same drive. This operation is performed in the external storage connected to Salesforce. Use Case Example: When a Lead is converted to an Account, the associated lead folder can be moved into the newly created account folder. This ensures that all documentation related to the lead is automatically transferred and organized under the corresponding account record. ![](https://media.help.cloudfiles.io/fa-move-resource/02.png) ## Input Parameters To specify the resource file or folder you want to share or remove, it is necessary to provide the following parameters that define the target resource and its sharing destination. Below is a detailed explanation of each input: ### Destination The parent folder ID of the target location where the file or folder will be moved. This identifies the destination folder within the external storage. ### Drive Id The ID of the drive containing the resource. The action supports moving resources only within the same drive; cross-drive moves are not allowed. ### Library Specifies the external storage library, such as sharepoint, google, dropbox, box, onedrive, azure or cloudfiles (AWS S3). ### Resource Id Input the Resource Id i.e. unique identifier of the file or folder to moved. This ID is used to locate and process the resource within the specified library and drive. ### Resource Type Specfies whether the target is a file or folder. > **How to get Destination Parameters or Metadata Details ?** — Some of these Parameters like Drive ID can be obtained from within Salesforce CloudFiles app by navigating to the parent folder in the Content Library Tab and clicking the "View Metadata" button as shown in image below-Follow the steps below to retrieve these IDs -Click on App Launcher on top left. Search for the CloudFiles app.In the CloudFiles app, select the Content Library tab.Go to your cloud storage. You may need to login if you haven't already.Go to the target folder where you would like to place the created folders.A dialog box opens up which shows all the IDs. Copy the ID from here.These steps are shown in the GIF below - ## Output Parameters The CloudFiles: Move Resource action does not return any output parameters. Upon successful execution, the specified file or folder will be moved to the target location in the external storage. --- # Search by Resource Metadata (Flow Action) https://help.cloudfiles.io/salesforce/WzEc-search-by-resource-metadata # Search by Resource Metadata The "Search by Resource Metadata" flow action is a specialised feature designed for use with SharePoint and MS Teams, focusing on custom properties. This functionality allows users to efficiently search and manage resources (files & folders) by tags (metadata columns). > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The "Search by Resource Metadata" flow action is a specialised feature designed for use with SharePoint and MS Teams, focusing on custom properties. This functionality allows users to efficiently search and manage resources (files & folders) by tags (metadata columns). By specifying key-value pairs, users can conduct targeted searches (exact match) within custom columns, ensuring that they can easily locate and retrieve the relevant resources based on the defined metadata criteria. > **Note** — Please note, this action retrieves files/folders with the exact matching key-value pairs. ![](https://media.help.cloudfiles.io/fa-search-by-resource-metadata/01.png) ## What this action does For this action, users need to create a list in which they add key-value pairs that will look for values from the custom columns. The action will then return the resource associated with those custom properties. By leveraging this capability, users can efficiently filter and retrieve resources based on metadata defined in their SharePoint and MS Teams environment. ## Input Parameters In your flow builder, search for the element named “CloudFiles: Search by Resource Metadata”. You can also find this action in the CloudFiles category when you click the "Action" element in the "Add Element" box. Select the action to insert into the flow. Here is a list of all input parameters with a summary. For details, check out the individual sections below - - Condition (AND/OR) - Choose AND or OR depending on the key values of the custom columns in SharePoint or MS Teams as required. - Drive ID - This is for SharePoint and MS Teams users only. These cloud storages offer multiple 'drives' where documents can be uploaded. - Library - Library is the desired Cloud based drive where you wish to create the folder. - Properties - This is the key value of the custom columns through which we retrieve desired files/folders. ### Condition(AND/OR) Depending on the key values of the custom columns in SharePoint, specify AND or OR to define the logical condition that suits your requirements. This ensures that the criteria for filtering or processing data are accurately applied based on your specified key values. ### Library Library is the desired Cloud based drive where you wish to create the folder. This is a simple text field and you can enter one of these options - sharepoint, MS Teams. It's best to copy this parameter from the dialog box as shown in the image below. ### Drive ID This is important for MS Teams & SharePoint users only. These cloud storages offer multiple 'drives' where documents can be uploaded. Drive ID can be copied form the metadata dialog as shown below- ![](https://media.help.cloudfiles.io/fa-search-by-resource-metadata/02.png) These parameters can be obtained within Salesforce with a single click by navigating to the parent folder in the Content Library tab and clicking the "View Metadata" button as shown in image below. The Content Library tab can be accessed from the CloudFiles app launcher or also be inserted into any of your standard or custom apps. Follow the steps below to retrieve these IDs - - Click on App Launcher on top left. Search for the CloudFiles App. - In the CloudFiles App, select the Content Library Tab. - Go to your cloud storage. You may need to login if you haven't already. - Go to the target folder where you would like to place the created folders. - A dialog box opens up which shows all the IDs. Copy the ID from here. Once you have the drive ID, create a new resource with the following specifications: set the type to "constant," the data type to "text". For the value, go to the content library. From the view metadata section, add the Drive Id to the resource. Finally, incorporate this newly created resource into the Drive Id field of the flow action. This ensures that the Drive Id is accurately linked and utilized within your automated workflow. ### Properties Here, you need to specify the property name in the external storage whose value must be updated or set. This property name determines which aspect of the file or folder you intend to search. This ensures that the automation correctly identifies the resources in the external storage system. Now create a list of properties in which you need to define the newly created resource for example, "Property1" (as shown in the example) which is a variable resource with “Data type > Apex-defined” and “Apex class > cldfs_CloudFilesVariable”, similarly for "Property2". Next, use the key in the value section of “Property1 > key” or “Property2 > key” with “Equals” operator, which is the name of the custom column. You can obtain this key by either navigating to Cloudfiles > Document Management > Widget Section > Choose any Custom Column or by directly looking up the name in your SharePoint library. This key will be used to accurately link the properties to the respective columns, ensuring proper data integration within your workflow. Head over to SharePoint and in the custom columns, use the custom tags to specifically locate the file/folder which is to be retireved. For example, lets say I want to find all the files/folders associated with the custom tags “111111” from “CustomColumn1” and also “222222” from “CustomColumn2” so enter these custom tags in the “Property1 > valueString” and “Property2 > valueString” respectively. Refer to the video below to have a visual understanding of the above parameters - [Watch video](https://youtu.be/Okats_U0GiE) ## Output Parameters The Apex action returns a list of resources. If you require individual resource parameters, you should incorporate a loop into your flow. This loop will allow you to retrieve and process the details of each resource separately, based on the needs of your flow action. By doing so, you can efficiently access and utilise specific attributes of each resource for further operations or decision-making within your automated workflow. ![](https://media.help.cloudfiles.io/fa-search-by-resource-metadata/03.png) ### Resource A resource represents a file or a folder in external storage. It has the following properties- - Id - External Id of the Resource - Type - One of file or folder - Name - Name of the resource, with extension in case of files - Library - one of sharepoint, google, onedrive, box, dropbox, cloudfiles - DriveId - Drive Id in external storage. Only applicable for SharePoint & Google Drive. You can get this value from Content Library. - Path - This is the Cloud storage path of the newly created folder. It specifies the particular endpoint and resource you want to interact with, such as records, objects, or custom resources. ![](https://media.help.cloudfiles.io/fa-search-by-resource-metadata/04.png) --- # Set Resource Property (Flow Action) https://help.cloudfiles.io/salesforce/set-resource-property # Set Resource Property Metadata properties in file storage systems, such as SharePoint, Google Drive, and others, represent key information about files or folders. These properties define the type of information you can store about a resource and are critical for organizing, filtering, and managing data effectively. > Kind: Flow action · Updated: Jul 1, 2026 ## Introduction Metadata properties in file storage systems, such as SharePoint, Google Drive, and others, represent key information about files or folders. These properties define the type of information you can store about a resource (file or folder) and are critical for organizing, filtering, and managing data effectively. In systems like SharePoint, metadata properties function similarly to database fields or spreadsheet headers. For example: - Columns in SharePoint categorize and tag files with information like file type or status. - Properties in Google Drive include attributes like a folder's name, description, or permissions. By leveraging metadata properties, you can ensure structured management and efficient retrieval of resources across platforms. Columns in SharePoint are the fields or metadata associated with items in a list or document library. They define the type of information you can store about an item or file. ![](https://media.help.cloudfiles.io/fa-set-resource-property/01.png) Common column types for file tagging include: Single Line of Text, Choice, Date and Time, Checkbox and many more. Columns enable better categorization and automation, ensuring efficient file management and discovery. The CloudFiles: Set Resource Property flow action automates the process of updating or assigning metadata property values for resources across multiple storage systems, such as: - SharePoint: Update column values (e.g., Document Type, Status). - Google Drive: Modify properties like folder name or description. - Other Libraries: Set properties as supported by the specific platform. This action enables seamless integration with Salesforce Flow Builder, allowing sophisticated automations for metadata management in diverse systems. ![](https://media.help.cloudfiles.io/fa-set-resource-property/02.png) ## What this action does The CloudFiles: Set Resource Property flow action allows you to: - Specify the target Resource using its metadata details. - Specify the columns to update using their Property/Column API Names. - Dynamically assign values to these Properties/Columns via text input or flow resources. This action supports batch updates, enabling you to update or assign multiple column values for a single resource in a single action execution. Example Use Case Scenario: Your Salesforce users upload files into SharePoint folders through CloudFiles LWCs on Account and Contact record pages. You want to capture specific metadata from these upload events and automatically tag the files in SharePoint. For instance: - If a file is uploaded from an Account record, set its Document Type column to "Account File" and the Record Id column to the associated Account's Record ID. - If uploaded from a Contact record, set the same columns accordingly. Automation Steps: - Trigger the Automation: Configure a flow to trigger on the File Uploaded event. - Filter Events: Use decision elements to filter the events based on the originating record's object type (e.g., Account or Contact). - Set Resource Properties: Use the Set Resource Property action to update the file’s column values: - Assign "Account File" to the Document Type column and the Account's Record ID to the Record Id column for Account-originated uploads. - Similarly, tag files with appropriate values for Contact-originated uploads. By automating column tagging, you ensure consistent metadata management, enhancing discoverability and supporting streamlined workflows. Below is the flow snippet of the example use case: ![](https://media.help.cloudfiles.io/fa-set-resource-property/03.png) ## Input Parameters ### Resource The Resource parameter is used to specify the SharePoint Resource (File or Folder) whose column values are to be updated. > **How to configure the Resource Parameter?** — If you do not have the Resource parameter directly available, you can configure it by:Creating a cldfs_Resource variable in your flow.Assigning the Resource's metadata details (e.g., Drive Id, Id, Library) to the variable.These metadata details can be obtained from:CloudFiles Event Details, such as:File Uploaded Resource Cloned Any OtherCloudFiles Flow Actions, such as: Get Folder Contents Get Resource Details Any OtherIn the scenario described in the "What this action does" section, the uploaded file's metadata details are fetched using event details. The flow snippet below illustrates the steps to configure the Resource parameter: ### Properties The Properties parameter in the Set Resource Property action is where you define column value assignments for a Resource (File or Folder) in SharePoint. Each column to be updated requires two inputs: - Property Name: Specifies the column (property) to update. - Value: Specifies the new value for that column. ![](https://media.help.cloudfiles.io/fa-set-resource-property/04.png) ### Property Name Input the File/Folder (Resource) Property API name in the external storage whose value must be updated/set. > **Where to find the Property/Column's API Name ?** — From External Storage directly find the API Names of Columns in a specific Document Library.Alternatively, within Salesforce, go to:CloudFiles App > Document Management > Widget ConfigurationIn the Widget Columns section, add required Columns to check their API Names by navigating to the Storage Loaction, and find its API Name (displayed in brackets next to the Column Name). > **When Updating a Resource's 'Name' Column/Property-** — To update the 'Name' column of a SharePoint Resource (File or Folder), you need to follow a special configuration:Separate action for 'Name'You must create a separate Set Resource Property action for updating the 'Name' column.Only the 'Name' column can be updated within this action.No other columns (properties) can be updated in the same action when modifying the 'Name' column.Updating 'Name' and other columnsIf you need to update both the 'Name' column and other columns simultaneously, you must use two separate actions:One action should be dedicated solely to updating the 'Name' column.A second action should update all other columns.Note: In rare cases, the Set Resource Property action may fail when property values contain special characters (such as backslashes \) or JSON-like syntax (e.g. //, comments). This is because the action builds a JSON payload and those characters can unintentionally break the JSON format.Workaround: Use the Set Resource Property (Batch) action instead when modifying such values. It handles more complex property updates and helps avoid JSON formatting issues when special characters are involved. > **Types of SharePoint columns that can be updated using the flow action** — Currently, the CloudFiles: Set Resource Property flow action supports updates for only the following two types of SharePoint columns:Single Line of TextYes/NoFor other column types, such as Date, Choice, and others, Manual Updates through the CloudFiles Widget/LWC are supported. However, these types are not yet supported for updates via the flow action.Support for additional column types in the flow action will be added in future releases. ### Value Input the value to assign to the specified column. The value can be: - Plain Text: Manually entered text. - Dynamic Resource: A value from a Salesforce Flow Resource (e.g., variables, formulas). - If Column Type is Yes/No then: - for Yes, Value = TRUE - for No, Value = FALSE ## Output Parameters This action does NOT generate any output. To confirm the execution: - Check the updated values directly in SharePoint. - Verify column values via the CloudFiles LWC. --- # Set Resource Property (Batch) https://help.cloudfiles.io/salesforce/set-resource-property-batch # Set Resource Property (Batch) The CloudFiles: Set Resource Property (Batch) action extends the functionality of the standard Set Resource Property flow action, enabling you to process multiple resource property updates in a single action instead of configuring several individual actions in your flow. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The CloudFiles: Set Resource Property (Batch) action extends the functionality of the standard Set Resource Property flow action, enabling you to process multiple resource property updates in a single action. Instead of configuring multiple individual actions in your Salesforce flow, this batch action consolidates them, improving efficiency and simplifying flow management. ![](https://media.help.cloudfiles.io/fa-set-resource-property-batch/01.png) ## What this action does The Set Resource Property (Batch) action processes a collection of Set Resource Property update requests. Each request contains: - A Resource (the file or folder to be updated). - A collection of Updates (key-value pairs of property names and their corresponding values). The action applies all updates in the collection, streamlining workflows for handling multiple metadata updates. Example: If three files need updates: - File 1: Updates as "Document Type" to "Invoice" and "Status" to "Approved." - File 2: Updates as "Document Type" to "Report." - File 3: Updates as "Name" to "Project_Plan.docx" and "Category" to "Project Files." Instead of using 3 seperate Set Resource Property flow actions, configure 3 seperate cldfs__SetResourcePropertyFlowInput entries, add them to the Inputs collection, and execute a single Set Resource Property (Batch) action. ## Input Parameters ### Inputs A collection of Apex-defined variables of type cldfs__SetResourcePropertyFlowInput. ![](https://media.help.cloudfiles.io/fa-set-resource-property-batch/02.png) Each cldfs__SetResourcePropertyFlowInput includes: - Resource: The target Resource (file or folder). - Updates: A collection of cldfs__CloudFilesVariable variables, each representing a property name and its corresponding value for the Resource. > **How to configure the "Inputs" Parameter?** — Create the Inputs Collection- Define a Collection variable of type cldfs__SetResourcePropertyFlowInput in Salesforce Flow to hold multiple Set Resource Property entries.Create Individual cldfs__SetResourcePropertyFlowInput Entries For each resource to be updated:Assign the Resource (metadata details such as DriveId, Id, and Library).Define the Updates:Each update is a cldfs__CloudFilesVariable object with:Key: The Property Name (e.g., "Document Type" or "Status").ValueString: The corresponding value for the property.Add updates to each resource-Create a Collection variable of cldfs__CloudFilesVariable to store all the property-value mappings for the resource.Assign this collection to the Updates field of the cldfs__SetResourcePropertyFlowInput.Add all Inputs to the Batch Collection- Add all such cldfs__SetResourcePropertyFlowInput entries to a collection variable and Input this as Inputs parameter. ## Output Parameters This action does not produce specific outputs. To confirm the execution: - Check the updated metadata values in the external storage system (e.g., SharePoint). - Verify changes via the CloudFiles LWC or widget. --- # Update Permissions (Flow Action) https://help.cloudfiles.io/salesforce/y5mx-update-permissions # Update Permissions Learn how to effectively set permissions for files and folders in external storage platforms like SharePoint and Google Drive with this comprehensive guide. Discover the step-by-step process of adding the Update Permissions action to a flow and configuring owner, read, and write access. > Kind: Flow action · Updated: Jul 2, 2026 ## Introduction The Update Permissions flow action can be used to set owner/read/write permissions of a resource — whether a Site, Drive, Folder, or File — in external storage for specific Salesforce User Ids or Group Ids. Additionally, the Salesforce Only field, when set to True, enables you to enforce permissions strictly at the Salesforce level without modifying the actual permissions in external storage platforms such as SharePoint or Google Drive. This is particularly useful for restricting actions (like upload, rename, or delete) within Salesforce, while leaving external access unchanged. The image below gives an overview of the input parameters and what this action looks like. Detailed description of these input parameters and it's outputs are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-update-permissions/01.png) ## What this action does The Update Permissions flow action is used to set permissions of a file/folder at either external level or salesforce level. For an instance, this flow action can be combined with Share With Community User flow action which shares a specific file/folder with a community user and the read level access is given by default. The Update Permissions flow action can now be used to update the permissions to give write access to the shared file/folder. In the image given below the flow action is used to grant write access to particular file/folder whenever a new user gets created. ![](https://media.help.cloudfiles.io/fa-update-permissions/02.png) ## Input Parameters Let us discuss each of the input parameters in detail in the sections below. ### Access Level (owner/read/write) This parameter used to specify the access level to grant/revoke. This has to be one of read or write. This parameter is used to specify the access level to grant or revoke. For standard usage, this must be one of read or write. For site and driveresource types, any custom SharePoint role name (e.g. Contribute, Design) is also accepted in addition to the built-in owner (full control), read, and write roles. > **Note** — Access Levels are inherited but can be overridden. E.g. If a user has READ access level for a parent folder they have READ access level on all child folders by default. If they are then granted a different access level explicitly then the explicitly granted permission will take precedence > **Note** — Precedence order of access levels in order of high to low is NONE, READ, WRITE. This means that if a user is grant WRITE access level to a folder but their profile is granted NONE , the user will not have access to the folder. > **Note** — Standard roles (owner, read, write) automatically add users to the built-in SharePoint site groups (Owners, Members, and Visitors respectively). Custom roles (e.g. Contribute,Design) use direct role assignments on the site rather than site group membership.Incase of SharePoint Groups they always get direct role assigments. ### Action (grant/revoke) This parameters specify the type of action. This has to be one of grant or revoke. The following are permutations of access level and action that are handled. action: revoke, accessLevel: read - Impacted users will lose complete access to the file/folder - i.e. Access Level NONE action: revoke, accessLevel: write or action: grant, accessLevel: read- Impacted users will lose access to update actions like upload, replace, delete, rename, move, new folder - i.e. Access Level READ action: grant, accessLevel: write - Impacted users will have full access (As much as their permission level in SharePoint/Google Drive allows), i.e. Access Level WRITE ### Resource Parameters These parameters are needed to specfiy the Resource (site/drive/folder/file) whose permissions are going to be updated. You can get these parameters by viewing metadata details for a folder in the “Content Library” tab of CloudFiles app in Salesforce or can be fetched through other flow actions or elements like “Get Connected Folder”, "Create SharePoint Site" etc. ### Drive Id This is important for Google Drive & SharePoint libraries only. The Drive ID is a unique identifier for a storage location in both SharePoint and Google Drive. In SharePoint, it represents a document library within a site, while in Google Drive, it identifies a user's drive or shared drive. ![](https://media.help.cloudfiles.io/fa-update-permissions/03.png) ### Library Input the destination Library. Possible values are sharepoint, google, azure,onedrive, dropbox, box, s3, sftp or cloudfiles. ### Resource Id This is the unique identifier of the resource (file, folder, site, or drive) whose permissions are being updated. Accepts only one Id. If you need to update multiple resources at once, use Resource Ids instead. Examples: Files → FileId as ResourceId Folders → FolderId as ResourceId SharePoint Sites → SiteId as ResourceId SharePoint Document Libraries (Drives) → DriveId as ResourceId ### Resource Ids This field accepts collection variable of multiple Resource Ids (sites, drives, files, or folders) whose permissions are being updated. > **Note** — The Resource Id field should be populated when there is one resource Id for which you are updating permissions while Resource Ids field should be populated when there is a collection of resource Ids whom permissions are being updated, hence, it is mandatory to fill either of the field but not both based on the use case. ### Resource Type This defines the type of resource for which permissions are being updated. Possible values: file → For files folder → For folders site → For SharePoint sites drive → For SharePoint document libraries (drives) ### Emails or Site Group Names List of email Ids of users for whom permissions are being updated. ### Salesforce Only This field enables to set permissions for files/folders at salesforce level but not at the external storage level. When set True, actions (create folder, upload file, rename, move, etc.) can be disabled for specific groups, users or profiles without changing the permissions in SharePoint/Google Drive. This field is not mandatory and should be included or not included based on the use case. > **Note** — This feature needs to be enabled by the CloudFiles team for your org. Please contact support@cloudfiles.io ### Salesforce User or Group Ids This is a collection variable which accepts collection of Salesforce User Ids/ Group Ids for whom permissions are being updated. --- # Doc Sharing Flow Actions https://help.cloudfiles.io/salesforce/doc-sharing-flow-actions # Doc Sharing Flow Actions This collection consists of all Document Sharing flow actions. > Kind: Flow action · Updated: Jul 4, 2026 This collection consists of all Document Sharing flow actions. - Add to Dataroom - This action lets you add content to a dataroom. - Create Dataroom - This action lets you create a Datatoom - which is a way to share multiple files & folders with customers and to receive files from them. - Create File Request - This action helps you create a file request block. It's a way to receive files from customers. - Create Link - This action creates a shareable link of a file, folder or dataroom that can be copied to a Salesforce property for later use. - Remove from Community - This flow action allows you to unshare a resource (file or folder) from a Salesforce record particularly useful when a resource that was previously shared with a Salesforce record and its associated portal users via Experience Cloud needs to be restricted or removed. - Share With Community User - While the Create Attachment flow action connects external files or folders to Salesforce records, enabling users to access them via the CloudFiles Lightning Web Component (LWC) on record pages. This functionality also works in Experience Cloud, allowing organizations to share resources with portal users while controlling access through sharing settings. - Update Link Settings - This flow action can be used to update security policies on your created CloudFiles links. The settings include disabling the link, restricting access to the link to specific users, protecting the link with a password etc. --- # Add to Dataroom https://help.cloudfiles.io/salesforce/add-to-dataroom-flow-action # Add to Dataroom Learn how to easily add content to a dataroom using a flow action with this comprehensive guide. Follow step-by-step instructions to seamlessly integrate the "Add to Dataroom" action into your flow and configure its parameters. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction A Dataroom is way to share multiple files & folders with customers and to receive files from them. In this article, we will see how to add content to a dataroom using a flow action. ## 1 - Add "Add to Dataroom" action to your flow In your flow builder, search for the element named "Add to Dataroom". You can also find this action in the CloudFiles category when you click "action" element in "Add Element" box. Select the action to insert into the flow. ## 2 - Configure parameters Please configure the following parameters after inserting the flow action- - Dataroom Id - Id of the dataroom. The Dataroom Id can come from an earlier action in the flow like "Create Datatoom", or can be read from the record. - File Requests - Collection variable holding items of type "File Request". A File Request in the flow can come from a "Create File Request" action. To create a collection out of it, you can use an assignment element to add to a list. - Resources - Collection variable holding items of type Resource (File or Folder). A Resource in the flow can come from a "Create Folder" action. To create a collection out of it, you can use an assignment element to add it to a list. ![](https://media.help.cloudfiles.io/fa-add-to-dataroom-sf/01.png) --- # Create Dataroom https://help.cloudfiles.io/salesforce/create-dataroom-flow-action # Create Dataroom Learn how to create a dataroom using a flow action with this comprehensive document. Follow the step-by-step guide to add the "Create Dataroom" action to your flow and configure parameters like description and dataroom name. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction A Dataroom is a way to share multiple files & folders with customers and to receive files from them. In this article, we will see how to create a dataroom using a flow action. ## 1 - Add Create Dataroom action to your flow In your flow builder, search for the element named "Create Dataroom". You can also find this action in the CloudFiles category when you click "action" element in "Add Element" box. Select the action to insert it into the flow. ## 2 - Configure parameters Please configure the following parameters after inserting the flow action- - Description- A description of the dataroom that will be visible to customers - Name - Name of the dataroom ![](https://media.help.cloudfiles.io/fa-create-dataroom-sf/01.png) ## 3 - Returned Value The Apex action returns a custom type called Dataroom. You can use fields from this type, like id, name etc. You can use these fields in subsequent flow actions or save them as custom fields on the record to use outside this flow. --- # Create File Request https://help.cloudfiles.io/salesforce/create-file-request-flow-action # Create File Request Learn how to create a file request block using the "Create File Request" flow action with this step-by-step guide. Configure parameters like description, destination folder ID, drive ID, library, and file request block name. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction A File Request is a way to receive files from customers. Files received using a File Request can be moved to a preconfigured folder automatically. In this article, we will see how to create a file request block using a flow action. ## 1 - Add Create File Request Action to your Flow In your flow builder, search for the element named "Create File Request". You can also find this action in the CloudFiles category when you click "action" element in "Add Element" box. Select the action to insert into the flow. ## 2 - Configure parameters Please configure the following parameters after inserting the flow action- - Description - A description of the file request that will be visible to customers. - Destination Folder Id - (Optional). If you want to automatically move the received files to a folder, please provide the Folder Id here. The Folder Id can come from an earlier action in the flow like "Create Folder", or can be read from the record. - Drive Id - Drive Id for SharePoint or Google Drive. This parameter is not needed for other storages. To get the value of Drive Id, please refer to the Create Folder flow action. - Library- one of sharepoint, google, onedrive, box, dropbox, cloudfiles - Name - Name of the file request. ![](https://media.help.cloudfiles.io/fa-create-file-request-sf/01.png) ## 3 - Returned Value The Apex action returns a custom type called File Request. You can use fields from this type, like id, name etc. You can use these fields in subsequent flow actions or save them as custom fields on the record to use outside this flow. --- # Create Link (Flow Action) https://help.cloudfiles.io/salesforce/create-link-flow-action # Create Link Learn how to use the Create Link flow action in Salesforce to easily create shareable links for files, folders, or datarooms. This comprehensive document provides step-by-step instructions on adding the action to a flow and configuring its parameters. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The Create Link flow action creates a shareable link of a file, folder or dataroom that can be copied to a Salesforce property for later use. This means you can automatically create sharing links of files & folders when certain conditions like record creation happens in Salesforce. In this article we show how to add this action to your flow and configure the parameters. ## 1 - Add Share action to your flow Create a standard Salesforce flow. You can choose to have any type of trigger conditions here. Then, add an element and choose actions. If you have CloudFiles correctly installed and connected, you can find the Share action in the CloudFiles category on the left. ![](https://media.help.cloudfiles.io/fa-create-link-sf/01.png) NOTE: If you use a record triggered flow, make sure you run this action on an asynchronous path as shown below. ![](https://media.help.cloudfiles.io/fa-create-link-sf/02.png) ## 2 - Configure parameters Please configure the following parameters after inserting the flow action- - Library - one of sharepoint, google, onedrive, box, dropbox, cloudfiles - DriveId - Drive Id for SharePoint or Google Drive. This parameter is not needed for other storages. To get the value of Drive Id, please refer to the Create Folder flow action. - Resource Id - Id of the file, folder or dataroom. You can get it from one of the earlier actions in the flow like "Create Folder". - Resource Type - folder, file or dataroom. - Salesforce Record Id - Id of the Salesforce record. In a record triggered flow, this would be {!$Record.Id}. ![](https://media.help.cloudfiles.io/fa-create-link-sf/03.png) ## 3 - Returned Value The Apex action returns a custom type called Link. You can use fields from this type, like id, url etc. You can use these fields in subsequent flow actions or save them as custom fields on the record to use outside this flow. --- # Remove from Community (Flow Action) https://help.cloudfiles.io/salesforce/remove-from-community # Remove from Community The CloudFiles: Remove from Community flow action allows you to unshare a resource (file or folder) from a Salesforce record. This action is particularly useful when a resource that was previously shared with a Salesforce record's portal users via Experience Cloud needs to be restricted or removed. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The CloudFiles: Remove from Community flow action allows you to unshare a resource (file or folder) from a Salesforce record. This action is particularly useful when a resource that was previously shared with a Salesforce record and its associated portal users via Experience Cloud needs to be restricted or removed. Unlike the Share With Community User action, which shares resources, this action reverses the process, ensuring that unshared resources are no longer visible to portal users in the Experience Cloud widget or related Salesforce record widgets. ![](https://media.help.cloudfiles.io/fa-remove-from-community-sf/01.png) ## What this action does The CloudFiles: Remove from Community action disconnects a resource from a Salesforce record to which it was previously attached. This action removes the file or folder from being displayed in the Experience Cloud widget, effectively revoking access for portal users associated with the record. For example, an organization might use this action to unshare outdated documents, such as an old proposal or irrelevant datasheets, from client-facing portals, while retaining control over resources for internal teams. This ensures that portal users only have access to the most relevant and current files. ## Input Parameters ### Library Specifies the external storage library, such as sharepoint, google, dropbox, box, onedrive, azure or cloudfiles (AWS S3). ### Resource ID Input the Resource Id i.e. unique identifier of the file or folder to be unshared. This ID is required to locate and disconnect the resource from the associated Salesforce record. ### Resource Type Indicates whether the target is a file or folder. ### Salesforce Record ID The ID of the Salesforce record from which the resource will be unshared. This parameter ensures the action is applied to the correct record and its associated portal users. ## Output Parameters The CloudFiles: Remove from Community action does not produce direct outputs. However, upon successful execution, the specified resource will no longer be displayed in the Experience Cloud widget or accessible via the Salesforce record for portal users. --- # Share With Community User (Flow Action) https://help.cloudfiles.io/salesforce/share-with-community-user # Share With Community User The Create Attachment flow action provides a seamless way to connect files or folders from external storage to Salesforce records, enabling users to access attached resources directly through the CloudFiles Lightning Web Component (LWC), which can be placed on record detail pages and shared with Experience Cloud portal users. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction While the Create Attachment flow action provides a seamless way to connect files or folders from external storage to Salesforce records. This integration enables users to access attached resources directly through the CloudFiles Lightning Web Component (LWC), which can be placed on the record detail pages. The same functionality extends to Experience Cloud, allowing organizations to share resources with portal users while maintaining control through sharing settings. When configured in CloudFiles > Document Management > Experience Cloud, the sharing settings ensure that attachments visible on internal record pages are also displayed in the Experience Cloud widget for portal users. ![](https://media.help.cloudfiles.io/fa-share-with-community-user-sf/01.png) Additionally, the Share With Community User action enables a specific resource sharing explicity with either Salesforce records for Experience Cloud pages or directly with users or groups through the Content Library Widget. The image below gives an overview of the input parameters and what this action looks like. Detailed description of these input parameters and outputs are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-share-with-community-user-sf/02.png) ## What this action does The Create Attachment action links external resources to Salesforce records or users, automating access to files and folders across different use cases. For example, an organization can create an External sub-folder for an account record, share it with associated portal users, and keep other folders for internal purposes only. Similarly, internal and external monthly reports can be organized into separate folders, ensuring that only external reports are shared with clients. By providing resource parameters and specifying the target (such as a Salesforce record ID, user ID, or group ID), the action facilitates precise sharing. It automatically updates CloudFiles widgets on internal records and Experience Cloud pages, ensuring both internal teams and external users have the access they need. > **Note** — The flow action can be helpful in the following example use cases among many others.Share an external folder containing chemical datasheets with clients while keeping other folders for internal purpose only.Create separate folders for storing internal and external monthly reports and share only external reports with clients. ![](https://media.help.cloudfiles.io/fa-share-with-community-user-sf/03.png) ## Input Parameters To specify the resource file or folder you want to share or remove, it is necessary to provide the following parameters that define the target resource and its sharing destination. Below is a detailed explanation of each input: ### Drive Id Indicates the ID of the drive in which the target file or folder resides. This is essential for external storage systems like Google Drive or SharePoint, where files are stored across multiple drives. ### Library Specifies the external storage library, such as sharepoint, google, dropbox, box, onedrive, azure or cloudfiles (AWS S3). This determines the platform on which the resource resides. ### Resource Id Input the Resource Id i.e. unique identifier of the file or folder being shared. This ID is used to locate and process the resource within the specified library and drive. ### Resource Type Specfies whether the target is a file or folder. ### Salesforce Record Id/User Id/Group Id Specifies the target recipient of the shared resource. This field can be populated with the user Id of the user we want to share the target file or folder. It can also be populated with a salesforce record Id to share it with multiple users related to that record. This can be: - A Salesforce Record ID to associate the file or folder with a record (such as an Account or Opportunity) and share it with all the users having record access. - A User ID to share the resource directly with an individual user. - A Group ID to share with a predefined group of users in Salesforce. ## Output Parameters The target file/folder are shared with designated user(s) as a result of execution of the flow action. The action returns following items as output. ![](https://media.help.cloudfiles.io/fa-share-with-community-user-sf/04.png) ### Id This is the salesforce record Id/user Id/group Id to which a file or folder is shared. ### Resource This is the resource related to the target file/folder. --- # Update Link Settings (Flow Action) https://help.cloudfiles.io/salesforce/update-link-settings # Update Link Settings The “Update Link Settings” flow action can be used to update security policies on your created CloudFiles links, including disabling the link, restricting access, and password protection. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction “Update Link Settings” action can be used to update security policies on your created CloudFiles links. The settings include disabling the link, restricting access to the link to specific users, protecting the link with a password etc. For example, if you wish to restrict the access to the shared collateral available through the link, you can do so by specifying the list of authorized user email Ids. ## 1 - Add “Update Link Settings” Action to your flow In your flow builder, search for the element named “Update Link Settings”. You can also find this action in the CloudFiles category when you click the "Action" element in the "Add Element" box. Select the action to insert it into the flow. ## 2 - Configuration - Link Id - Input the CloudFiles Link Id whose settings are to be updated. - Allowed Emails - Input a list of Email Ids you wish to grant access to the link. - Allowed Domains - Input a list of Domains you wish to grant access to the link. - Disable - Toggle On and set value to 'True' to disable the CloudFiles Link. - Allow Downloading - Toggle On and set value to 'True' to allow downloading. - Password - Enter the password you wish to use to protect the CloudFiles link. - Enable Email Verification - Toggle On and set value to 'True' to enforce email verification. ## 3 - Returned Value None --- # Doc Generation Flow Actions https://help.cloudfiles.io/salesforce/doc-generation-flow-actions # Doc Generation Flow Actions This collection consists of all Document Generation flow actions. > Kind: Flow action · Updated: Jul 4, 2026 This collection consists of all Document Generation flow actions. - Get Doc-Gen Templates - This flow action retrieves all CloudFiles Document Generation templates associated with a specific Salesforce Object type, allowing flows to dynamically look up and select the right template before generating documents rather than hardcoding a template ID. - Generate Document - This action can be used in Salesforce Flow Builder to automate document generation process. - Generate Document (Sync) - This flow action operates synchronously, providing immediate outputs after execution. This differs from the asynchronous Generate Document action, which publishes a Document Generated CloudFiles Event without immediate results. - Generate Document (Batch) - This flow action allows you to automate the generation of multiple documents in a single action within Salesforce Flow Builder. - Merge Documents (Sync) - This action lets you combine multiple files into a single document directly within Salesforce Flow Builder. This synchronous action delivers real-time outputs that you can use immediately in subsequent automation steps. --- # Get Doc-Gen Templates https://help.cloudfiles.io/salesforce/get-doc-gen-templates # Get Doc-Gen Templates The CloudFiles: Get Doc-Gen Templates action is a Salesforce Flow Apex action that retrieves CloudFiles Document Generation templates, filtered by Salesforce Object type, by tag, or by both. It is typically used as a preparatory step before generating documents. > Kind: Flow action · Updated: Sep 1, 2026 ## Introduction The CloudFiles: Get Doc-Gen Templates action is a Salesforce Flow Apex action that retrieves CloudFiles Document Generation templates, filtered by Salesforce Object type, by tag, or by both. It is typically used as a preparatory step before generating documents, allowing your Flow to look up and select the right template at runtime rather than hardcoding a template ID. ![](https://media.help.cloudfiles.io/fa-get-doc-gen-templates-sf/block-2-64799d92.png) ## What This Action Does All your Doc-Gen templates can be viewed and managed under the CloudFiles App → Document Generation → DocGen Templates section. Each template in this list is associated with a source Salesforce object (e.g., Account, Lead, Purchase_Order__c) and has a unique Template ID, version number, tags, and other metadata. The CloudFiles: Get Doc-Gen Templates action allows you to programmatically fetch this same list, filtered by object type or by tag, directly within a Salesforce Flow. ![](https://media.help.cloudfiles.io/fa-get-doc-gen-templates-sf/block-5-44858601.png) When executed, CloudFiles: Get Doc-Gen Templates queries the CloudFiles platform and returns a collection of Doc-Gen templates matching the filters supplied: all templates configured for a given Salesforce Object type (e.g., Account), all templates carrying the given tags, or both. Where only an object type is supplied, this is the same list of templates you would see when browsing the CloudFiles App → Document Generation → DocGen Templates section and filtering by a particular source object. ![](https://media.help.cloudfiles.io/fa-get-doc-gen-templates-sf/03.png) This action is especially useful when you need to filter or choose templates at runtime, enabling flexible and intelligent document generation workflows within Salesforce Flow Builder. ## Input Parameters All inputs are optional. Supply at least one filter to keep the returned collection to a usable size. - Object Type: The API name of the Salesforce Object for which you want to retrieve Doc-Gen templates. This should match the Object type as configured against your CloudFiles Doc-Gen templates (e.g., Account, Contact, or a custom object such as Purchase_Order__c). Leave this blank to retrieve templates across all object types. Example: Entering Account returns all CloudFiles Doc-Gen templates whose Master source object is set to Account. - Tags: One or more tags to filter by. Only templates carrying a matching tag are returned. Leave this blank to apply no tag filter. Example: Entering Renewal returns only templates tagged Renewal. - Tags: Match All: Controls how multiple tags are evaluated. Set to true to return only the templates carrying every tag in the list. Set to false to return templates carrying any tag from the list. This input has no effect when a single tag is supplied. Example: With tags EMEA and Contract, setting Tags: Match All to true returns only templates carrying both tags. Setting it to false returns templates carrying either. > **Note** — Filtering by tag alone can return templates from several objectsA tag is not tied to a source object, so leaving Object Type blank can return templates published against different objects in a single collection.A document can only be generated from a record of the object the template was published against. If a tag-only filter can return templates from more than one object, confirm the template belongs to the record's object before passing its id into a CloudFiles: Generate Document action. The simplest way to avoid this is to keep Object Type set whenever you already know the object your Flow is running on. ## Output Parameters The action returns a single output, Templates cldfs__DocGenTemplateList, which is a collection of records of the custom Apex type Template. Each item in the returned collection represents one template and exposes the following fields: ![](https://media.help.cloudfiles.io/fa-get-doc-gen-templates-sf/04.png) | Field | Type | Description | |---|---|---| | id | Text | The unique identifier of the template in CloudFiles. | | name | Text | The display name of the template (e.g., Proposal Presentation). | | kind | Text | The template file type (e.g., docx, pptx, xlsx, pdf). | | description | Text | A short description of the template, if configured. | | tags | Text | The tags applied to the template. | | createdAt | DateTime | The timestamp when the template was created. | | createdBy | Text | The user who created the template. | | versionNumber | Number | The current version number of the template. | The collection can then be used according to the use case, for example filtering a template by name before passing it to a Generate Document action downstream. ![](https://media.help.cloudfiles.io/fa-get-doc-gen-templates-sf/insert-18-ad8db2ba.png) > **Note** — Using the Output in Your FlowSince the output is a collection, you will typically follow the pattern below after the action is added to your flow.Step 1: Tag the TemplatesOn the DocGen Templates page, apply a shared tag to the templates this flow should be able to reach. Tagging is optional, but supplying a tag on the action returns a smaller collection and reduces how much narrowing the flow has to do.Step 2: Add the ActionIn Flow Builder, add the CloudFiles: Get Doc-Gen Templates Apex action to your flow. Set the Object Type input to the API name of the relevant Salesforce object (e.g., Account), and set Tags to the tag you applied. If you supply more than one tag, set Tags: Match All to control whether templates must carry all of them. The output resource Templates will be automatically available for use in subsequent elements.Step 3: Add a Loop ElementAdd a Loop element immediately after the action. Set its Collection Variable to the Templates output of the action (shown as Outputs from Get Account Object Doc-Gen Templates > Templates). This will iterate over every template returned, one at a time.Step 4: Add a Decision Element Inside the LoopInside the loop, add a Decision element to identify the specific template you want to use. Use the current loop item's fields as the resource, for example set the Resource to Current Item from Loop > name, the Operator to Equals, and the Value to the template name you want to match (e.g., Pre-Sale Proposal or Annual Report).You can define multiple outcomes in a single Decision element to handle different templates in the same flow.If the tag filter already narrows the collection to a single template, you can skip the Loop and Decision elements and pass the template straight to the next step.Step 5: Generate the DocumentOn the matching Decision outcome path, add your CloudFiles: Generate Document or CloudFiles: Generate Document (Sync) action. Pass the relevant fields of the matched template (such as id) into the Generate Document action as the template input. --- # Generate Document (Flow Action) https://help.cloudfiles.io/salesforce/generate-document # Generate Document The CloudFiles: Generate Document flow actions allow you to automate document generation directly within Salesforce Flow Builder. Instead of manually selecting a template and generating documents via the CloudFiles Doc-Gen LWC on a record's Details page, this action streamlines the process by automating document creation based on specific triggers and criteria defined in your flow. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The CloudFiles: Generate Document flow actions allow you to automate document generation directly within Salesforce Flow Builder. Instead of manually selecting a template and generating documents via the CloudFiles Doc-Gen LWC on a record's Details page, this action streamlines the process by automating document creation based on specific triggers and criteria defined in your flow. Below is how the action looks like. Detailed descriptions of the input and output parameters are provided in the following section. ![](https://media.help.cloudfiles.io/fa-generate-document-sf/01.png) ## What this action does The CloudFiles: Generate Document flow action automates document creation using predefined templates and criteria set within Salesforce Flow Builder. - Document Generation: - Creates documents in PDF / DOCX / PPTX / XLSX format based on specified parameters. - Supports dynamic template assignment (e.g., based on record type or decision logic). - Storage Options: - Save the generated file in Salesforce by: - Linking it to a specific record as a content document. - Placing it in a designated file library. - Store the file in external storage when using the package with the CloudFiles | Document Management & Sharing Platform - Dynamic Variables: - Insert placeholders into templates for dynamic content. - Assign values to these variables within the flow (e.g., user name, dates). - Preview Operations: - Allowing/disallowing operations like print and download in the preview window. - PDF Security Features: - Configure advanced security options for PDFs, such as: - Allowing/disallowing printing or form field editing. - Locking the document for edits. - Setting an owner password or a view password. Example Use Case: Automatically generate a contract in PDF or DOCX format from a dynamically assigned template (e.g., based on record type). The contract: - Includes dynamic variables like the user's name. - Is locked for edits and protected with an owner password. - Is saved in a specified location, such as a Salesforce File on the Opportunity record or in the dedicated Opportunity's external storage folder. This action simplifies document generation while providing flexibility and control over content and security. ## Input Parameters Here is a list of all input parameters with a summary. For details, check out the individual sections below: - CloudFiles Variables: Pass custom runtime variables and edit the fields. - Destination: Information specifying where the generated template/document will be stored. - Document Type (docx/pdf/pptx/xlsx): The type of document to be created, either PDF, DOCX, PPTX, or XLSX. - Parameters: Parameters for editing the document, such as password protection, locking, or printing permissions. - Record ID: The Record Id of the object for which the document is to be generated, such as “Triggering Account > Account Id”. - Template: The newly created resource, such as “TemplateId” in the example shown in Document Generation using CloudFiles. ### Cloudfiles Variables The CloudFiles Variables parameter allows you to input values for custom runtime variables used in templates. This feature supports dynamic document generation by enabling flexible data assignment at runtime. Steps to Configure CloudFiles Variables Input Parameter - Create Resources for Runtime Variables: - Create a new Apex-Defined Variable of the Apex class cldfs_CloudFilesVariable for each runtime variable you want to use. - Each variable includes two fields: - Key: The API name of the runtime variable (retrieved from the "Resources" section in the Template Builder). - ValueString: The value to be assigned to the variable. - Assign Key-Value Pairs: - Use an Assignment Element in your flow to populate the runtime variables: - Set the Key to the API name of the runtime variable from the MS Word, Excel, or PowerPoint template. - Assign the desired ValueString. ![](https://media.help.cloudfiles.io/fa-generate-document-sf/02.png) - Build a Collection Variable: - Create a Collection Variable of the same Apex class (cldfs_CloudFilesVariable). - Add all the configured individual runtime variables to the Collection Variable. ![](https://media.help.cloudfiles.io/fa-generate-document-sf/03.png) - Input the Collection in the Action: - Input the Collection Variable into the CloudFiles: Generate Document action's CloudFiles Variables paramter. ![](https://media.help.cloudfiles.io/fa-generate-document-sf/04.png) This configuration enables dynamic assignment of variables, ensuring document outputs are flexible and tailored to meet specific requirements. Runtime variables can personalize templates, automate complex workflows, and support highly customized document generation scenarios. ### Destination The Destination parameter determines where the generated document will be stored after CloudFiles completes the document generation process. Steps to Configure Destination: - Create an Apex-Defined Variable of Apex Class cldfs__Resource ![](https://media.help.cloudfiles.io/fa-generate-document-sf/05.png) - Assign the necessary metadata (e.g., Library, DriveId, Id) based on the chosen storage option. - To Save in Salesforce - Default Behavior (Salesforce Files): - If no destination parameter is specified, the file is stored in the Salesforce File Library. - Link to a Specific Record: - Assign the following fields: - Library: Set to salesforce. - Id: Set to the Record Id of the Salesforce record to which the file will be linked. ![](https://media.help.cloudfiles.io/fa-generate-document-sf/06.png) - To Store in External Storage - When using CloudFiles with the CloudFiles | Document Management & Sharing Platform: - Assign the following fields to define the external storage location: - Library: Specify the library name. - Drive Id: Specify the Id of the connected drive. - Id: Specify the Id of the folder or location within the drive. ![](https://media.help.cloudfiles.io/fa-generate-document-sf/07.png) - Pass the configured variable as the Destination Parameter in the CloudFiles: Generate Document action. ![](https://media.help.cloudfiles.io/fa-generate-document-sf/08.png) This setup provides flexibility to store files in Salesforce or external storage, aligning with your business needs. ### Document Type (docx / pptx / xlsx / pdf) The Document Type parameter specifies the format of the file to be generated based on the chosen template. - docx: Generates a file using the MS Word Template in.docx format. - pptx: Generates a file using the MS PowerPoint Template in.pptx format. - xlsx: Generates a file using the MS Excel Template in.xlsx format. - pdf: Generates a file in.pdf format, using any MS Word, PowerPoint, or Excel Template. Select the appropriate type based on your requirements and the template used. ### Record Id The Record Id parameter specifies the Salesforce record to be used as the data source for generating the document. The document is created based on the data from this record and the predefined template. Provide the Record Id of the object for which the template was designed (e.g., Opportunity, Contact, or Custom Object). ### Parameters The Parameters input allows you to configure advanced security features for the generated PDF documents. Steps to Configure: - Create an Apex-Defined resource of Apex class cldfs_DocGenParamsin the flow. ![](https://media.help.cloudfiles.io/fa-generate-document-sf/09.png) - In an Assignment element: - Assign the Variable's fields. - Set the desired parameters to $GlobalConstant.True or $GlobalConstant.False. - If no value is set, parameters default to false. ![](https://media.help.cloudfiles.io/fa-generate-document-sf/10.png) - AllowFillingPdfFormFields: Enables users to fill out form fields in the PDF if the template includes them. (Options: TRUE or FALSE) - AllowPdfPrinting: Permits printing of the generated PDF. (Options: TRUE or FALSE) - LockPdf: Locks the PDF to prevent any edits.(Options: TRUE or FALSE) - AllowDownloadInPreview: Makes the download button visible in preview window. (Options: TRUE or FALSE) - AllowPrintInPreview: Makes the print button visible in preview window. (Options: TRUE or FALSE) - PdfOwnerPassword: Specifies an owner password to restrict editing access to those with the password. Enter the password as a string value. - PdfViewPassword: Specifies a view password to restrict viewing access to those with the password. Enter the password as a string value. - Retention: This parameter controls how long the file remains at the destination. The value is taken in minutes. Use these parameters to customize the security settings of the generated PDF based on your requirements. ### Template Input the 24-Digit CloudFiles "Template Id" of a published Template which can be found in the CloudFiles app under the Document Generation tab. This Id is essential for identifying and using the correct template for document generation, ensuring that the documents are formatted and populated as intended based on the specified template. ![](https://media.help.cloudfiles.io/fa-generate-document-sf/11.png) ## Output Parameters The CloudFiles: Generate Document action operates asynchronously, meaning it does not provide immediate outputs after execution. Asynchronous Document Generation: After the action runs, a Document Generated CloudFiles event is published. There is no direct confirmation or result data immediately available. How to verify Document Generation? Check the specified destination (e.g., Salesforce File Library, record attachment, or external storage) to confirm the document was generated successfully. > **Benefits of Asynchronous Design** — Trigger Subsequent Flows: Use the Document Generated event to initiate other flows or automate additional actions.Flexible Automation Architecture: This approach supports handling complex business use cases and enables advanced automation scenarios in Salesforce.By leveraging this design, you can build scalable and dynamic document generation workflows that align with your Organization's needs. Below is an example of flow created using this flow action - ![](https://media.help.cloudfiles.io/fa-generate-document-sf/12.png) > **Error Handling** — Error Handling If an action execution fails to generate the document, an Error Event is published for that specific action. These events can be used to identify and handle issues with individual document generation requests. --- # Generate Document (Sync) (Flow Action) https://help.cloudfiles.io/salesforce/generate-document-sync # Generate Document (Sync) The CloudFiles: Generate Document (Sync) action operates synchronously, providing immediate outputs after execution. This differs from the asynchronous Generate Document action, which publishes a Document Generated CloudFiles event without immediate results. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The CloudFiles: Generate Document (Sync) action operates synchronously, providing immediate outputs after execution. This differs from the asynchronous Generate Document action, which publishes a Document Generated CloudFiles event without immediate results. This synchronous action allows you to seamlessly integrate document generation into synchronous flows requiring real-time execution, offering greater flexibility in automation. Like the asynchronous action, this feature also enables automated document creation within Salesforce Flow Builder. Instead of manually selecting templates and generating documents via the CloudFiles Doc-Gen LWC on a Record Detail page, it streamlines the process based on specific triggers and criteria set in your flow. Below is how the action looks like. Detailed descriptions of the input and output parameters are provided in the following section. ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/01.png) ## What this action does The CloudFiles: Generate Document (Sync) flow action automates document creation using predefined templates and criteria set within Salesforce Flow Builder. - Document Generation: - Creates documents in PDF / DOCX / PPTX / XLSX format based on specified parameters. - Supports dynamic template assignment (e.g., based on record type or decision logic). - Storage Options: - Save the generated file in Salesforce by: - Linking it to a specific record as a content document. - Placing it in a designated file library. - Store the file in external storage when using the package with the CloudFiles | Document Management & Sharing Platform - Dynamic Variables: - Insert placeholders into templates for dynamic content. - Assign values to these variables within the flow (e.g., user name, dates). - Preview Operations: - Allowing/disallowing operations like print and download in the preview window. - PDF Security Features: - Configure advanced security options for PDFs, such as: - Allowing/disallowing printing or form field editing. - Locking the document for edits. - Setting an owner password or a view password. Example Use Case: Automatically generate a contract in PDF or DOCX format from a dynamically assigned template (e.g., based on record type). The contract: - Includes dynamic variables like the user's name. - Is locked for edits and protected with an owner password. - Is saved in a specified location, such as a Salesforce File on the Opportunity record or in the dedicated Opportunity's external storage folder. This action simplifies document generation while providing flexibility and control over content and security. ## Input Parameters Here is a list of all input parameters with a summary. For details, check out the individual sections below: - CloudFiles Variables: Pass custom runtime variables and edit the fields. - Destination: Information specifying where the generated template/document will be stored. - Document Type (docx/pdf/pptx/xlsx): The type of document to be created, either PDF, DOCX, PPTX, or XLSX. - Parameters: Parameters for editing the document, such as password protection, locking, or printing permissions. - Record Id: The Record Id of the object for which the document is to be generated, such as “Triggering Account > Account Id”. - Template: The newly created resource, such as “TemplateId” in the example shown in Document Generation using CloudFiles. ### Cloudfiles Variables The CloudFiles Variables parameter allows you to input values for custom runtime variables used in templates. This feature supports dynamic document generation by enabling flexible data assignment at runtime. Steps to configure CloudFiles Variables Input Parameter - Create Resources for Runtime Variables: - Create a new Apex-Defined Variable of the Apex class cldfs_CloudFilesVariable for each runtime variable you want to use. - Each variable includes two fields: - Key: The API name of the runtime variable (retrieved from the "Resources" section in the Template Builder). - ValueString: The value to be assigned to the variable. - Assign Key-Value Pairs: - Use an Assignment element in your flow to populate the runtime variables: - Set the Key to the API name of the runtime variable from the MS Word, Excel, or PowerPoint template. - Assign the desired ValueString. ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/02.png) - Build a Collection Variable: - Create a Collection Variable of the same Apex class (cldfs_CloudFilesVariable). - Add all the configured individual runtime variables to the Collection Variable. ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/03.png) - Input the Collection in the Action: - Input the Collection Variable into the CloudFiles: Generate Document (Sync) action's CloudFiles Variables paramter. This configuration enables dynamic assignment of variables, ensuring document outputs are flexible and tailored to meet specific requirements. Runtime variables can personalize templates, automate complex workflows, and support highly customized document generation scenarios. ### Destination The Destination parameter determines where the generated document will be stored after CloudFiles completes the document generation process. Steps to Configure Destination: - Create an Apex-Defined Variable of Apex Class cldfs__Resource ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/04.png) - Assign the necessary metadata (e.g., Library, Drive Id, Id) based on the chosen storage option. - To Save in Salesforce - Default Behavior (Salesforce Files): - If no destination parameter is specified, the file is stored in the Salesforce File Library. - Link to a Specific Record: - Assign the following fields: - Library: Set to salesforce. - Id: Set to the Record Id of the Salesforce record to which the file will be linked. ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/05.png) - To Store in External Storage - When using CloudFiles with the CloudFiles | Document Management & Sharing Platform: - Assign the following fields to define the external storage location: - Library: Specify the library name. - Drive Id: Specify the Id of the connected drive. - Id: Specify the Id of the folder or location within the drive. ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/06.png) - Pass the configured variable as the Destination Parameter in the CloudFiles: Generate Document (Sync) action. ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/07.png) This setup provides flexibility to store files in Salesforce or external storage, aligning with your business needs. ### Document Type (docx / pptx / xlsx / pdf) The Document Type parameter specifies the format of the file to be generated based on the chosen template. - docx: Generates a file using the MS Word Template in.docx format. - pptx: Generates a file using the MS PowerPoint Template in.pptx format. - xlsx: Generates a file using the MS Excel Template in.xlsx format. - pdf: Generates a file in.pdf format, using any MS Word, PowerPoint, or Excel Template. Select the appropriate type based on your requirements and the template used. ### Record Id The Record Id parameter specifies the Salesforce record to be used as the data source for generating the document. The document is created based on the data from this record and the predefined template. Provide the Record Id of the object for which the template was designed (e.g., Opportunity, Contact, or Custom Object). ### Parameters The Parameters input allows you to configure advanced security features for the generated PDF documents. Steps to Configure: - Create an Apex-Defined resource of Apex class cldfs_DocGenParamsin the flow. ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/08.png) - In an Assignment element: - Assign the Variable's fields. - Set the desired parameters to $GlobalConstant.True or $GlobalConstant.False. - If no value is set, parameters default to false. ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/09.png) - AllowFillingPdfFormFields: Enables users to fill out form fields in the PDF if the template includes them. (Options: TRUE or FALSE) - AllowPdfPrinting: Permits printing of the generated PDF. (Options: TRUE or FALSE) - LockPdf: Locks the PDF to prevent any edits.(Options: TRUE or FALSE) - AllowDownloadInPreview: Makes the download button visible in preview window. (Options: TRUE or FALSE) - AllowPrintInPreview: Makes the print button visible in preview window. (Options: TRUE or FALSE) - PdfOwnerPassword: Specifies an owner password to restrict editing access to those with the password. Enter the password as a string value. - PdfViewPassword: Specifies a view password to restrict viewing access to those with the password. Enter the password as a string value. - Retention: This parameter controls how long the file remains at the destination. The value is taken in minutes. Use these parameters to customize the security settings of the generated PDF based on your requirements. > **To Configure Dynamic Passwords** — The parameters PdfOwnerPassword and PdfViewPassword can also be configured to take dynamic passwords on the generated document. You can set up dynamic text using a formula inside the flow, and this can then serve as the password for these two parameters. ### Template Input the 24-Digit CloudFiles "Template Id" of a published Template which can be found in the CloudFiles app under the Document Generation tab. This Id is essential for identifying and using the correct template for document generation, ensuring that the documents are formatted and populated as intended based on the specified template. ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/10.png) ## Output Parameters The CloudFiles: Generate Document (Sync) action provides immediate outputs, accessible in the flow's All Resources. ![](https://media.help.cloudfiles.io/fa-generate-document-sync-sf/11.png) Below are the 4 output parameters and their details: ### Document - This Output paramter specifies the metadata details of the generated file. - This parameter is populated only if the Destination input parameter is configured. If not, it will be null. Field Details: - When saved in Salesforce and linked to a record: - Id: The generated file's Content Document Id. - Library: salesforce. - Other fields will be null. - When saved in external storage: - Contains metadata details of the file stored in the external storage. ### Content Version Id - If no Destination parameter is specified, the file is stored in the Salesforce File Library. - This parameter holds the Content Version Id of the generated file in Salesforce. ### Document Name The name of the generated document. ### Download Url A dynamic URL to download the generated file. This is a direct link to download the generated document file. When accessed, it immediately starts the download of the file hosted by CloudFiles. Usage: Use this URL in flow-driven email alerts, screen flows, or external integrations to give users instant access to the file, or store it in a custom field on a Salesforce record for later use or automation. ### Preview Url This is a public, view-only link that opens the generated document in the CloudFiles web viewer, without requiring the file to be downloaded. Usage: Embed this URL in screen flows, email templates, or Experience Cloud pages to allow users to preview documents directly in the browser. > **Using Preview URL in LWC:** — When using the Generate Document (Sync) action in a screen flow, the Preview URL can be passed to a custom Lightning Web Component (LWC). The LWC can embed the URL within an Kind: Flow action · Updated: Jul 13, 2026 ## Introduction The CloudFiles: Generate Document (Batch) action allows you to automate the generation of multiple documents in a single action within Salesforce Flow Builder. It simplifies the process of handling multiple document generation requests, reducing complexity and increasing efficiency for bulk operations. Unlike the Generate Document action, which processes a single document at a time, the batch action takes a collection of input configurations and generates multiple documents asynchronously, each based on its respective template and parameters. Below is how the action looks like. Detailed descriptions of the input and output parameters are provided in the following section. ![](https://media.help.cloudfiles.io/fa-generate-document-batch-sf/ba3dbaa4.png) ## What this action does The Generate Document (Batch) action processes a collection of document generation inputs in a single execution, where each input corresponds to a single document generation request. It automates bulk document creation with the same advanced features available in the standard Generate Document action. Each variable in the collection input can specify a unique Generate Document action. Each processed input publishes a Document Generated event, which can be used to trigger additional automations or workflows. Example Use Case: A sales team needs to generate multiple Opportunity documents records in one go when the status is updated to 'Closed-Won'. Instead of using multiple Generate Document flow actions in the flow, a single Generate Document (Batch) action can be used to generate all the documents based on the input paramters. ## Input Parameters The Generate Document (Batch) action has two input parameters — one required and one optional: ### Inputs A collection of Apex-Defined Variables of the class cldfs__GenerateDocumentFlowInput. ![](https://media.help.cloudfiles.io/fa-generate-document-batch-sf/02.png) Each cldfs__GenerateDocumentFlowInput represents the input configuration for generating one document and contains the same fields as the parameters for the Generate Document action: - CloudFiles Variables: Runtime variables for template placeholders. - Destination: Where to store the generated document (Salesforce or external storage). - Document Type: Format of the generated document (pdf, docx, pptx, xlsx). - Record Id: Salesforce record Id for pulling data. - Parameters: Advanced security settings for PDF documents. - Template: Template Id to be used for document generation. > **Steps to configure Inputs Parameters-** — Create individual Apex-Defined Variables of the cldfs__GenerateDocumentFlowInput class for each document.Populate each variable's fields with the respective configuration values (e.g., template Id, destination, and record Id) as you do for a single Generate Document action.Add all these variables to a Collection Variable of the same class cldfs__GenerateDocumentFlowInputInput the Collection Variable into the action's Inputs parameter. ### Signing Settings (optional) The Signing Settings input is optional and is passed as an Apex-Defined Variable of the class cldfs__GenerateDocumentSigningSettings. Leave it empty and behavior is unchanged — one envelope per document. It contains the following fields: - combineDocuments (Boolean) — Flow label "Send all documents in a single envelope". When true, all documents generated from this input are sent for signature together as one DocuSign envelope: signers get a single email, sign everything in one session, and the signed documents are delivered together. - emailSubject (String, optional) — Flow label "Envelope Email Subject (optional)". Subject of the envelope email; defaults to the first document's template signing settings. - emailMessage (String, optional) — Flow label "Envelope Email Message (optional)". Message body of the envelope email; same default. > **Setting up the Signing Settings variable in Flow** — Create an Apex-Defined variable to hold the signing settings: set Resource Type to Variable, Data Type to Apex-Defined, and Apex Class to cldfs__GenerateDocumentSigningSettings (named signingSettings below).Then, in an Assignment element, set its fields: combineDocuments to True to combine the batch, and optionally emailSubject and emailMessage for the envelope email.Finally, pass the variable as the Signing Settings (optional) input on the CloudFiles: Generate Document (Batch) action. > **Combined envelope & asynchronous support** — When combineDocuments is true, every document in the input is bundled into one DocuSign envelope. The action runs asynchronously and can now be invoked from Batch Apex or other asynchronous (future / queueable) contexts. > **Limitations** — A single combined envelope holds up to 25 documents and about 25 MB in total; split larger batches across multiple inputs. A signer who appears in more than one document of the same envelope signs them all in one step — their place in the overall signing order is preserved, but a per-document order for that signer is not. ## Output Parameters The CloudFiles: Generate Document (Batch) action operates asynchronously, meaning it does not provide immediate outputs after execution, instead publishes events for each processed input. ### Document Generated Events Each document generation request (individual input) publishes a Document Generated event upon successful processing. Use these events to trigger downstream automations or flows, such as notifications or additional processing. > **Error Handling** — Error Handling If an input fails to process, an Error Event is published for that specific input. These events can be used to identify and handle issues with individual document generation requests. --- # Merge Documents (Sync) (Flow Action) https://help.cloudfiles.io/salesforce/merge-documents-sync # Merge Documents (Sync) The CloudFiles: Merge Documents (Sync) flow action lets you combine multiple files into a single document directly within Salesforce Flow Builder. This synchronous action delivers real-time outputs that you can use immediately in subsequent automation steps. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The CloudFiles: Merge Documents (Sync) flow action lets you combine multiple files into a single document directly within Salesforce Flow Builder. This synchronous action delivers real-time outputs that you can use immediately in subsequent automation steps. This feature streamlines document workflows by consolidating files from various libraries—whether in Salesforce or external drives—into one file. You can then store the merged document back in Salesforce or in a custom library location. > **Note: ** — Note: The file types supported for merging are PDF, DOCX, Images (PNG and JPEG). Below is how the action appears in Flow Builder. The following sections provide detailed descriptions of the input and output parameters. ## What this action does This flow action automates the combination of multiple files into a single document. ### Document Merging Helps in doucument merging by - - Merging multiple files into one consolidated document. - Supporting merging documents from both Salesforce Files and external libraries. - Retainaing the order of documents as provided in the input collection. ### Storage Options Save the merged document in Salesforce by: - Linking it to a specific record as a content document. - Placing it in a designated file library. Store the file in external storage when using the package with the CloudFiles | Document Management & Sharing Platform ## Input Parameters Here is a list of all input parameters with a summary. For details, check out the individual sections below: - Resources: A collection of cldfs__Resource variables, each representing a file to be merged. - File Name: Name for the resulting merged file. - Destination (optional): Location to save the output document. ![](https://media.help.cloudfiles.io/fa-merge-documents-sync-sf/01.png) ### 1 - Resources The Resources parameter accepts a collection of Apex-defined variables cldfs__Resourcethat point to documents from Salesforce Files or external storage. Each file you want to merge must first be defined as an individual variable and then added to the collection. For each file, create a new variable of type cldfs__Resource. Create one variable per file (e.g., File_1, File_2). ![](https://media.help.cloudfiles.io/fa-merge-documents-sync-sf/02.png) In your Flow, use an Assignment element to assign values for each file: - library = "salesforce" (when the file is from Salesforce). - id = Salesforce ContentDocument File Id (e.g., 069dL00000A4vd3QAB). ![](https://media.help.cloudfiles.io/fa-merge-documents-sync-sf/03.png) Create a collection variable that can hold multiple cldfs__Resource items. ![](https://media.help.cloudfiles.io/fa-merge-documents-sync-sf/04.png) Use an Assignment element to add your single file variables (File_1, File_2, etc.) into the Resources collection. Then, pass this collection to the Resources input of the CloudFiles: Merge Documents (Sync) action. This ensures that the action receives the complete list of files to be merged. ![](https://media.help.cloudfiles.io/fa-merge-documents-sync-sf/05.png) > **Note:** — Note:1- For files from external storage, configure the following parameters:IdLibraryDriveId2- If you already have a Content Document record collection or a Resource collection from external storage, you don’t need to create multiple cldfs__Resource variables. Instead, you can define a single cldfs__Resource variable along with one collection variable. By looping through the records, you can assign values such as Id, DriveId, and Library to the single variable, and then add it to the collection. ### 2 - File Name This parameter defines the name of the resulting merged file. - Input a static name or dynamically assign one using Flow resources. - Example: "Merged_File.pdf" or "MergedFiles_{!Account.Name}.pdf" This name will be visible in Salesforce Files or in the external storage location. ### 3 - Destination The Destination parameter determines where the merged document will be stored after CloudFiles completes the merge operation. > **Steps to Configure Destination** — Create an Apex-Defined Variable of Apex Class cldfs__Resource.To Save in Salesforce (Default Behavior):If no destination is provided, the merged file is saved to Salesforce Files.To explicitly link the file to a record:Library: Set to salesforce.Id: Set to the Record Id of the Salesforce record.To Store in External Storage:When using CloudFiles with the CloudFiles | Document Management & Sharing Platform:Assign the following fields:Library: External library name.DriveId: ID of the connected drive.Id: ID of the folder or location within the drive.Pass the configured variable as the Destination Parameter in the Merge Documents (Sync) action. ## Output Parameters The CloudFiles: Merge Documents (Sync) action provides immediate outputs, accessible in the flow's All Resources. ### 1 - Document - This Output parameter specifies the metadata details of the generated file. - This parameter is populated only if the Destination input parameter is configured. If not, it will be null. Field Details: - When saved in Salesforce and linked to a record - - Id: The generated file's Content Document Id. - Library: salesforce. - Other fields will be null. - When saved in external storage - - Contains metadata details of the file stored in the external storage. ### 2 - Content Version Id - If no Destination parameter is specified, the file is stored in the Salesforce File Library. - This parameter holds the Content Version Id of the generated file in Salesforce. ### 3 - Document Name The name of the generated document. ### 4 - Download URL A dynamic URL to download the generated file. --- # Doc AI Flow Actions https://help.cloudfiles.io/salesforce/doc-ai-flow-actions # Doc AI Flow Actions This collection consists of all Document AI flow actions. > Kind: Flow action · Updated: Jul 4, 2026 This collection consists of all Document AI flow actions. - Create Dataset - This action in CloudFiles Document AI allows multiple files to be grouped into a single dataset so they can be processed, queried and analyzed together using AI. This enables users to extract insights, compare information and ask questions across multiple documents within a dataset. - Document Mapper - This flow action allows a Document Mapper configuration to be executed from a Salesforce flow to process a document, extract structured data and automatically create or update Salesforce records. It helps convert documents like invoices, forms or contracts into records as part of an automated workflow. - Process Document using AI - This flow action prepares a document for querying by processing it first, enabling subsequent interactions with the document through CloudFiles Document AI. - Query Document/Dataset - This flow action enables to execute Natural Language Prompts on the data of the documents that have already been processed using Process Document using AI action. - Query Document/Dataset (Batch) - This flow action enables to execute multiple queries on the data of a processed document in a single action. - Split Document using AI - This flow action enables automated splitting of merged PDF files stored in Salesforce or external cloud storage into individual documents. --- # Create Dataset https://help.cloudfiles.io/salesforce/create-dataset # Create Dataset The Create Dataset action in CloudFiles Document AI enables you to group multiple files into a single logical dataset and process them together using AI. A dataset represents a collection of files that can be versioned, queried, and compared as a whole. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The Create Dataset action in CloudFiles Document AI enables you to group multiple files into a single logical dataset and process them together using AI. A dataset represents a collection of files that can be versioned, queried, and compared as a whole. This makes it ideal for use cases where insights need to be drawn across multiple documents rather than from a single file. Just like individual documents must be processed before they can be queried, datasets must first be created and processed so that their contents become searchable and queryable through CloudFiles AI. This action is a foundational step for workflows that involve querying across multiple files, comparing data between documents, or asking high-level questions that span an entire dataset using Query Document/Dataset or Query Document/Dataset (Batch) actions. ![](https://media.help.cloudfiles.io/fa-create-dataset-sf/01.png) ## What this action does This action runs asynchronously, meaning it does not provide immediate output. The Create Dataset action processes multiple files together as a single dataset, preparing them for intelligent, cross-document querying within CloudFiles Document AI. Instead of returning output directly, it publishes a Dataset Created event once all dataset resources have been successfully processed. During processing, each file in the dataset is analyzed individually. The Dataset Created event includes the datasetId (a unique CloudFiles identifier), which is essential for querying the dataset in subsequent CloudFiles Document AI actions. Example scenario Consider a scenario where you need to analyze multiple KYC documents associated with an Account or Contact in Salesforce such as passports, national identity cards, address proofs, and utility bills. Instead of processing each file individually, you may want to treat all these documents as a single logical unit and ask questions like: - “Do all documents belong to the same person?” - “Compare the address across all submitted documents.” - “Is there any mismatch in nationality or date of birth?” To enable this process, you would: - Create a flow that collects multiple related files (for example, all KYC documents attached to a Contact or uploaded via a CloudFiles widget) and uses the Create Dataset action to group and process them together. - Set up another flow triggered by the dataset-created event, which references the datasetId and contextual information (such as the originating Salesforce record). This flow can then use Query Document/Dataset or Query Document/Dataset (Batch) actions to ask questions, compare values across files, or extract consolidated insights from the dataset. ## Input Parameters In Flow Builder, search for CloudFiles: Create Dataset under the CloudFiles category and configure the following inputs. ### Context An optional identifier to track the source of the event or any other intended/necessary details. This shall be available in corresponding output i.e. in the corresponding Dataset Created event details. > **Note** — The Context parameter helps identify the origin of a dataset when the Create Dataset action is used across multiple flows. For example, when creating a dataset from documents attached to a Contact or Account, you can pass the record’s Id as the Context. This value is included in the Dataset Created event, allowing downstream flows to easily associate the dataset with the correct Salesforce record or process. ### Name (Required) A human-readable name for the dataset. This helps identify the dataset in queries, events, and version history. ### Dataset Id (Optional) If you want your new dataset to include files from an existing dataset, provide that dataset's Id here. The action will copy all resources from the referenced dataset into the newly created one, in addition to whatever files you specify in the Resources input. This is useful when you want to build on a previous dataset — for example, a Contact submits additional KYC documents and you want to create a fresh dataset that includes both the previously submitted files and the new ones. Note that this always creates a new dataset; it does not modify or append to the existing one. ### Resources (Required) The Resources input specifies the files that will be included in the dataset. This parameter must be an Apex-defined collection of Resource objects. Only values provided in this collection are accepted by the Create Dataset action. This is where you specify which files to include in the dataset. The parameter accepts an Apex-defined collection of Resource cldfs__Resourceobjects. Each Resource represents a single file source. You can include files from Salesforce Files or external storage (via CloudFiles Document Management), NOT a mix of both. > **Note** — Option A: Adding Salesforce FilesFor each Salesforce file you want to include, set these properties on a cldfs__Resource variable:Library - salesforce(please note the parameters are case sensitive)FileID - The ContentDocumentID of the Salesforce File to be processed.Option B: Adding External Storage FilesIf you use the CloudFiles: Document Management package, you can also include files from connected external storage. Set these properties:Library - The Library parameter is the external storage type you are using. Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, azure , cloudfiles (for AWS S3). Please note the parameters are case sensitive.Drive ID - The Id of the drive where the document resides. This is important for Google Drive & SharePoint libraries only. The Drive Id is a unique identifier for a storage location in both SharePoint and Google Drive. In SharePoint, it represents a document library within a site, while in Google Drive, it identifies a user's drive or shared drive.FileID - The unique identifier (Resource Id) of the file that is to be processed.Example: Building the Resources Collection in Flow BuilderScenario A: Looping Through Salesforce Files Attached to a RecordUse this approach when the files you want to include are Salesforce Files linked to a record (e.g., all files attached to a Contact or Account via ContentDocumentLink).Step 1 — Retrieve the files. Add a Get Records element to query ContentDocumentLink where LinkedEntityId equals the Id of your source record (e.g., a ContactId ). Store the results in a collection variable — this gives you all the files attached to that record.Step 2 — Create your working variables. You need two new variables:A single variable of type cldfs__Resource — call it something like Var_SingleResource. This will be reused on every pass through the loop.A collection variable of type cldfs__Resource — call it something like Var_ResourcesCollection. This is what you'll ultimately pass to the Create Dataset action.Step 3 — Add a Loop element. Drag in a Loop element and configure it to iterate over the ContentDocumentLink collection from Step 1. On each iteration, Flow automatically gives you access to the current ContentDocumentLinkrecord's fields.Step 4 — Assign values inside the loop. Inside the loop, add an Assignment element that sets the following on your SingleResource variable:library → salesforceid → the ContentDocumentId from the current loop iterationStep 5 — Add the resource to the collection. Still inside the loop, add another Assignment element (or add to the same one) that adds SingleResource to ResourcesCollection.The loop repeats Steps 4–5 for every file attached to the record. By the time it finishes, ResourcesCollection contains a cldfs__Resource entry for each file — regardless of whether there were 2 files or 20.Step 6 — Pass the collection to the Create Dataset action. After the loop, connect the CloudFiles: Create Dataset action and map ResourcesCollection to its Resources input. The action now receives the complete, dynamically built list of files.Scenario B: Passing External Storage FilesUse this approach when your files live in an external storage service connected through the CloudFiles: Document Management package (e.g., SharePoint, Google Drive, Dropbox, Box, OneDrive, Azure, or AWS S3).Use an action like Get Folder Contents to fetch the files from your target folder in the connected storage. This action outputs an Apex-defined collection of Resource cldfs__Resource, you can pass it directly to the Create Dataset action.Note: The Get Folder Contents action returns all resources within a folder — both files and sub-folders. The Create Dataset action only accepts files, so passing folder resources will cause errors. Only add resources that are files by filtering such collections ### Description (Optional) An optional description to provide context about the dataset’s purpose or contents. ## Output Parameters The apex action does not return anything as an output in the flow it is used but for every dataset processed a Dataset Created event is published. This event signals the completion of file processing and can be used to trigger platform event flows to perform actions such as Query Document/Dataset or Query Document/Dataset (Batch). > **Note** — If the action fails due to some reason, an error-event event will be triggered and this event can be used in a decision element to diagnose and handle the error. --- # Document Mapper (Flow Action) https://help.cloudfiles.io/salesforce/ZHNI-document-mapper # Document Mapper The CloudFiles Document Mapper flow action enables execution of a Document Mapper configuration directly from a Salesforce flow. This action processes a document, extracts structured data using the configured mapping, and then creates or updates Salesforce records automatically. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The CloudFiles Document Mapper flow action enables execution of a Document Mapper configuration directly from a Salesforce flow. This action processes a document, extracts structured data using the configured mapping, and then creates or updates Salesforce records automatically. It's particularly useful for converting documents such as invoices, forms, or contracts into Salesforce records as part of an automated process without requiring user interaction. ![](https://media.help.cloudfiles.io/fa-document-mapper-sf/01.png) ## What This Action Does The Document Mapper action runs a pre-created Document Mapper configuration against a provided file. When executed, CloudFiles processes the document using the configuration specified by the Config ID. Based on that configuration, Salesforce records are created or updated automatically. If a Record ID is not provided, the action creates new Salesforce records exactly as defined in the document mapper configuration, including a primary record and any related or child records such as line items. If a Record ID is provided, the action updates the specified Salesforce record and creates any related records defined in the configuration, enriching existing records with data extracted from documents while supporting complex parent-child record creation. The action runs asynchronously and publishes events once processing is complete. ## Input Parameters ### Config ID This parameter specifies the Document Mapper configuration to use when processing the document. The configuration controls which Salesforce objects are created or updated, which fields are populated, and how parent-child relationships are handled. It also defines the prompts used by Document AI to extract data from the document. > **Note** — You can obtain the Config ID from the CloudFiles app > Document AI > Document Mapper tab. This value is required for the action to run. ### Resource The Resource parameter represents the file to be processed by Document Mapper. This input must be provided as an Apex-defined variable representing a CloudFiles Resource. The document referenced by this resource is the file from which data will be extracted and mapped to Salesforce records. ### To Process a Salesforce File To specify a Salesforce File to be processed, input parameters as follows (please note the parameters are case sensitive): - Library - salesforce (please note the parameters are case sensitive) - FileID - The ContentDocumentID of the Salesforce File to be processed. > **Note** — You can get the ContentDocumentID of the Salesforce File from other standard salesforce elements like "Get Records" or standard Screen Flow "Upload Files" component or from details of CloudFiles Events like Salesforce File Attached. > **Note** — You can only process a Salesforce File in ContentDocument format.You cannot process an Attachment i.e. Classic Salesforce File format.It is mandatory to input both Library and FileID to specify a Salesforce File. ### To Process an External Storage File If you are using the CloudFiles: Document Management package as well, then you can process a file in connected external storage. In order to specify an External Storage File to be processed, input parameters as: - Library - The Library parameter is the external storage type you are using. Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, azure, cloudfiles (for AWS S3). Please note the parameters are case sensitive. - Drive Id - The Id of the drive where the document resides. This is important for Google Drive & SharePoint libraries only. The Drive Id is a unique identifier for a storage location in both SharePoint and Google Drive. In SharePoint, it represents a document library within a site, while in Google Drive, it identifies a user's drive or shared drive. - fileid - The unique identifier (Resource Id) of the file that is to be processed. > **Note** — Based on the use case, you can get these parameters from details of other CloudFiles Events like File Uploaded or File Received etc. ### Record ID (Optional) The Record ID parameter allows you to specify an existing Salesforce record to update. When this value is provided, the Document Mapper run action updates the specified record using the extracted data. Any related or child records defined in the configuration are also created as part of the same execution. If this parameter is not provided, the action creates new Salesforce records based on the configuration. ## Output Parameters The apex action does not return anything as an output in the flow it is used but for every file processed, a Document Mapper Run event is published. This event includes information about the processed document and the records involved in the execution and can be used to trigger platform event flows to perform any post-processing actions. > **Note** — If the action fails due to some reason, an error-event event will be triggered and this event can be used in a decision element to diagnose and handle the error. --- # Process Document using AI (Flow Action) https://help.cloudfiles.io/salesforce/process-document-using-ai # Process Document using AI The CloudFiles: Process Document Using AI flow action is a foundational step for working with documents in CloudFiles Document AI. Before you can query a document, it must be processed first, which prepares it for subsequent queries. > Kind: Flow action · Updated: May 21, 2026 ## Introduction The CloudFiles: Process Document Using AI flow action is a foundational step for working with documents in CloudFiles Document AI. Before you can query a document, it must be processed first. In other words, just as you would upload a file to an AI system to later ask questions about it, CloudFiles requires this initial processing to make the document accessible for querying. The Process Document Using AI action handles this, preparing the document for subsequent queries. This processing is an essential prerequisite for any workflow that involves further CloudFiles Document AI actions (For example, Query Document/Dataset) analyzing document content or extracting specific details, such as identifying document type or pulling specific values for other fields. ![](https://media.help.cloudfiles.io/fa-process-ai/01.png) ## What this action does This action runs asynchronously, meaning it does not provide immediate output. The Process Document Using AI action converts documents, such as images or PDFs, into a digitized, queryable format that CloudFiles can interpret. Instead of returning output directly, it publishes a Document Processed event once the processing is complete. This event details include ProcessedDocumentId (a unique CloudFiles identifier), which is essential for further CloudFiles Document AI actions, enabling you to query and interact with the document’s contents in subsequent flows. Consider a scenario where you need to process KYC documents attached to Contact records in Salesforce, such as passports or national identity certificates. You may want to automatically identify the document type (e.g., “Is this document a passport?”) and, if it is, query additional information such as the address or nationality to populate fields on the Contact record. To enable this process, you would: Create a flow that triggers each time a document is attached to a Contact record and uses the Process Document Using AI action to make the document ready for querying. Set up another flow triggered by the Document-Processed event, which references ProcessedDocumentId (a unique CloudFiles identifier) and information to identify its origin (such as the specific Contact record and processed file details) and use other CloudFiles Document AI actions to query and gather further information from the file. This setup allows you to automate document classification and content extraction workflows effectively. ## Input Parameters In your Flow Builder, search for the element named "CloudFiles: Process Document using AI". You can find this action in the CloudFiles category when you click on the "Action" element in the "Add Element" box. Select the action to insert it into the flow, and then configure the input parameters. ### To process a Salesforce file In order to specify a Salesforce file to be processed, Input paramters as: Library - salesforce(please note the parameters are case sensitive) FileID - The ContentDocumentID of the Salesforce File to be processed. > **Note** — You can get the ContentDocumentID of the Salesforce File from other standard salesforce elements like "Get Records" or standard Screen Flow "Upload Files" component or from details of CloudFiles Events like Salesforce File Attached. > **Note** — You can only process a Salesforce File in ContentDocument format.You cannot process an Attachment i.e. Classic Salesforce File format.It is mandatory to input both Library and FileID to specify a Salesforce File. ### To process an external storage file If you are using CloudFiles: Document Management package as well, then you can Process a file in connected external storage as well. In order to specify an External Storage File to be processed, Input parameters as: Library - The Library parameter is the external storage type you are using. Possible values are sharepoint, google (for Google Drive), onedrive, dropbox, box, azure, cloudfiles (for AWS S3). Please note the parameters are case sensitive. Drive ID - The Id of the drive where the document resides. This is important for Google Drive & SharePoint libraries only. The Drive Id is a unique identifier for a storage location in both SharePoint and Google Drive. In SharePoint, it represents a document library within a site, while in Google Drive, it identifies a user's drive or shared drive. FileID - The unique identifier (Resource Id) of the file that is to be processed. > **Note** — Based on the use case, you can get these parameters from details of other CloudFiles Events like File Uploaded or File Received etc. ### Agents (Optional) CloudFiles Document AI uses different types of agents (or AI models) to process and query documents. Agents define how documents are interpreted and how queries are executed. There are 3 possible types of agents that the Process Document action can accept as inputs - cloudfiles-searis-v1, cloudfiles-searis-v2, and cloudfiles-searis-aux-v1. The list of agents must be passed in a collection variable using the Assignment operation in flow. ![](https://media.help.cloudfiles.io/fa-process-ai/02.png) This collection variable can then be directly passed to the CloudFiles Process Document using AI flow action. ![](https://media.help.cloudfiles.io/fa-process-ai/03.png) To know more about these agents, their capabilities, and when to use which agent, please refer to the About the Agents article. ### Context An optional identifier to track the source of the event or any other intended/necessary details. This shall be available in corresponding output i.e. in the corresponding Document Processed event details. > **Note** — The Context parameter is particularly helpful if this action is used in multiple flows. For example, if you’re processing documents attached to Contact records, you can set the Contact’s Record Id as the Context. When events are published, this Context value will help you track the origin of each event by showing the associated Contact record. ### Instructions (Optional) The Instructions input parameter allows you to guide CloudFiles Document AI with specific context or expectations when processing a file. Providing clear, relevant instructions can significantly improve processing speed, classification accuracy, and downstream data extraction. > **Why Use Instructions?** — This is especially useful when dealing with complex, merged, or multi-section documents where a general understanding may not be enough for precise parsing.Improves AI interpretation by narrowing the context.Helps AI focus on document structure or content types.Reduces ambiguity in document classification or segmentation.Optimizes performance by pre-defining what the AI should look for. > **Example: Processing Purchase Orders with Order Line Items** — You are provided with a Purchase Order document that includes summary information and detailed line items. Your task is to accurately extract structured data from the document. The common components you should recognize and extract include: PO Number – A unique identifier for the purchase order, often found at the top or in a header section. PO Date – The date the order was created or issued. Vendor Information – The name, address, and contact details of the supplier/vendor. Buyer Information – The name, address, and contact details of the purchasing organization or department. Shipping/Billing Address – The address where the goods should be delivered or address used for invoice and payment processing. Currency – The currency in which the order is being placed (e.g., USD, EUR). Order Line Items – For each line item, extract the following: Item Description, Item Code / SKU, Quantity, Unit Price, Total Line Amount (Quantity × Unit Price), UOM (Unit of Measure),Grand Total – The final total payable amount. Payment Terms – Specified terms for invoice payment (e.g., Net 30, advance payment). Delivery Terms / Incoterms – If provided, terms related to delivery responsibility. PO Notes / Special Instructions – Any additional notes, disclaimers, or delivery instructions included in the document. Ensure accurate mapping of each order line item as a separate object if needed for downstream automation (e.g., creating Order Line Items in Salesforce). Handle tables and lists carefully, preserving row integrity. ### Pages to Process (Optional) The Pages to Process parameter allows you to control which parts of a document are processed, instead of always running Document AI on the entire file. By default, CloudFiles processes all pages in the document. If you only need specific sections, you can provide the page numbers or ranges in a comma-separated format. For example: 1-3,5,7 will process pages 1 through 3, page 5, and page 7. 1,10,12 will process only pages 1, 10, and 12. This parameter is especially useful when working with large multi-page files where only certain sections are relevant, helping to speed up processing and reduce unnecessary extraction. ## Output Parameters The apex action does not return anything as an output in the flow it is used but for every file processed a Document Processed event is published. This event signals the completion of file processing and can be used to trigger platform event flows to perform post-processing actions such as Query Document/Dataset or Query Document/Dataset (Batch). > **Note** — If the action fails due to some reason, an error-event event will be triggered and this event can be used in a decision element to diagnose and handle the error. --- # Query Document/Dataset https://help.cloudfiles.io/salesforce/query-documentdataset # Query Document/Dataset The CloudFiles: Query Document/Dataset flow action enables you to execute Natural Language Prompts on the data of documents that have already been processed using the Process Document using AI action, or on a dataset created using the Create Dataset action. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The CloudFiles: Query Document/Dataset flow action enables to execute Natural Language Prompts on the data of the documents that have already been processed using Process Document using AI action or on a dataset created using Create Dataset action ![](https://media.help.cloudfiles.io/fa-query-document-dataset-sf/01.png) ## What this action does The CloudFiles: Query Document/Dataset action allows you to execute a query (a natural language or English-language prompt) on the data of a processed document or a dataset. The action processes the query and returns the result as a text output. Imagine you are processing KYC files uploaded to Contact object records. Using this action, you can: - Classify the uploaded document as a Driving License, Passport, or neither. - Extract relevant information, such as the passport number, from the document. - Update the corresponding fields on the Contact record. - Classification Query: - Prompt: "Check the type of file. If it's a Driving License, return 1; if it's a Passport, return 2; if neither, return 0." - Based on the result (e.g., 2 for Passport), the flow decides the next steps. - Decision Element: - Using the query result, the flow branches into specific paths for each document type. - Follow-Up Queries: - For example, if the classification query returns 2 (Passport), the flow enters the "Is Passport" path and runs queries like: - "Extract the passport number." - "Extract the name on the passport." ![](https://media.help.cloudfiles.io/fa-query-document-dataset-sf/02.png) By using multiple Query Document/Dataset actions within a flow, you can build complex workflows that analyze and extract data from documents efficiently. ## Input Parameters Let us discuss each of the input parameters in detail, in the sections below. ### Agent (Optional) The Agent parameter determines which AI agent CloudFiles uses when executing a query on a processed document. Agents define how the query is interpreted and answered. If a list of agents was passed in the Process Document using AI flow action, then the Query Document/Dataset action can use one of those agents to get the response for one or more queries as specified. If you specify an agent in the Query Document/Dataset action that is not among the document’s configured agents, the query will fail with an error. The following screenshot illustrates how to fill in the corresponding input values. ![](https://media.help.cloudfiles.io/fa-query-document-dataset-sf/03.png) When a query is executed, the agent is selected in this order: - Agent explicitly provided in the Query Document/Dataset action. - If none is specified, the first agent configured at the document level within "Process Document using AI" flow action. - If no document-level agents are available, the account-level default is used. This ensures that queries always run with a valid and supported agent, while still giving you flexibility to override defaults where necessary. Additionally, it is also possible to directly query a document using some context provided within the query. For this, you can select the cloudfiles‑revia‑v1 agent as input. ### Dataset Id Input the Dataset Id of the group of files on which you wish to execute the Query. > **Note** — The Dataset Id is a unique identifier provided by CloudFiles that represents the data of the collection of processed documents.How it is generated ?The Id is genrated when a file is processed using the Create Dataset flow action.After this process, a Dataset Created event is automatically published.How to retrieve it ?Use the Get Event Details flow action associated with the corresponding event to obtain the Id. > **Note** — Dataset Comparison ExampleImagine you are storing multiple versions of a contract under the same Salesforce record. Using a Dataset Id, you can compare all related documents together.Using this action, you can:Identify differences between two versions of a contract.Detect changes in clauses, dates, or payment terms.Decide whether the changes require review or approval.Comparison Query:Prompt:Compare all documents in this dataset.Identify and list ONLY the differences between the documents.For each difference, clearly specify: The section or clause name (if available) The value in each document Whether the difference is an addition, removal, or modification If no differences are found, return: "No differences identified."Based on the result, the flow decides the next steps.Decision Element:If differences are found → Route for legal or manager review.If no differences are found → Proceed with automated approval.This approach allows you to analyze multiple related documents together using a single query, making datasets ideal for document comparison and version validation workflows. ### Processed Document Id Input the Processed Document Id of the file on which you wish to execute the Query. > **Note** — The Processed Document Id is a unique identifier provided by CloudFiles that represents the data of a processed document.How it is generated ?The Id is genrated when a file is processed using the Process Document using AI flow action.After this process, a Document Processed event is automatically published.How to retrieve it ?Use the Get Event Details flow action associated with the corresponding event to obtain the Id.Alternatively, if you need to execute queries on a Salesforce File later or on-demand:Store the file's Processed Document Id in a custom Content Version field.This allows you to query the document anytime, without relying on the event.Note:The same Processed Document Id can be reused multiple times to reference the document and execute queries as needed. ### Query Input the Query (as a plain text) specifying the prompt you wish to execute on the file identified by the input Processed Document Id. You can directly pass a string as the query (e.g., "Extract the passport holder's name."). Alternatively, you can pass the query dynamically through a variable, formula etc. allowing to incorporate complex use cases. > **Note** — The effectiveness of the CloudFiles: Query Document/Dataset action heavily depends on the quality of the query or input prompt.Tips for crafting effective prompts:Be Specific: Avoid vague prompts like "Return Expiry Date of the Passport". Instead, use a more detailed query like: "Return the Expiry Date of the Passport in the format DD/MM/YYYY."Define a return format statement as well which should cover all the expected outcomes in order to avoid garbage values and unprecedented results.Test and Refine: You can test the quality of your queries and verify if they yield the desired results by using the Playground feature in the CloudFiles app.Testing Queries in the Playground:Navigate to CloudFiles App > Document AI > Playground.Upload a sample file.Use the interactive Query side-component to experiment with different prompts against the file.This iterative process helps you fine-tune your queries for optimal results before implementing them in your workflows. > **Using AI for General Queries** — Not all queries need to be executed on a specific document. If you want to run a general AI-based query that does not require document data, you can simply omit the Processed Document ID when executing the query.This allows CloudFiles AI to process the query independently, focusing only on the text input you provide. This can be useful in scenarios where:You have pre-extracted data from documents and need AI to structure or analyze it further.You need AI to generate text-based responses, summaries, or formatted outputs based on user-defined parameters.Example Use Case: Generating an Email from Extracted DataConsider a scenario where you have processed an invoice document and extracted key details such as:Invoice Number: INV-20240319-001Invoice Amount: $2,500.00Primary Contact Name: John DoeDue Date: March 25, 2025Now, instead of querying the document again, you want AI to generate a structured email using these extracted details.How to Configure This in Salesforce FlowYou can create a Flow Text Formula Resource to format the extracted details into a structured prompt for AI processing.📌 Query Example:"Below are the identified details from an invoice: Invoice Number = {Invoice Number Query Result}, Invoice Amount = {Invoice Amount Query Result}, Primary Contact = {Client's Primary Contact Name Query Result}, Due Date = {Invoice Due Date Query Result}. Now, based on the provided details, compose a structured email to the primary contact. The email should: - Greet the contact by name. - Inform them about the invoice details in a professional and concise manner. - Politely request confirmation of the invoice details. - Provide a closing statement expressing appreciation and offer support if needed."Generated Email Output (Expected Result):Subject: Invoice Confirmation – INV-20240319-001 Dear John Doe, I hope you are doing well. We would like to confirm the details of your latest invoice: Invoice Number: INV-20240319-001 Invoice Amount: $2,500.00 Due Date: March 25, 2025 Please review the above details and let us know if everything is correct. If there are any discrepancies, kindly reply to this email at your earliest convenience. Looking forward to your confirmation. Thank you for your time! Best regards, [Your Name] [Your Company] ## Output Parameters The output of the CloudFiles: Query Document/Dataset action is a Text (String) data type containing the result of the query as defined in the query prompt. Where to find the output ? - The action's output is available in the flow resource's Action section. - The output is named based on the corresponding action label. For example, if the action is labeled as "Full Dimension Table Data", the output flow resource will be named "Text from Full Dimension Table Data". ![](https://media.help.cloudfiles.io/fa-query-document-dataset-sf/04.png) ## See it in action Here is the flow in action that we have used in this article as an example. In this flow we are providing a document to the AI and then prompting queries to determine whether the given document is KYC or not and classifying the type of KYC if it is either DL or passport. ![](https://media.help.cloudfiles.io/fa-query-document-dataset-sf/05.gif) --- # Query Document/Dataset (Batch) https://help.cloudfiles.io/salesforce/query-documentdataset-batch # Query Document/Dataset (Batch) The CloudFiles: Query Document/Dataset (Batch) flow action enables you to execute multiple queries on the data of a processed document or a dataset in a single action, unlike the standard Query Document/Dataset action, which executes a single query. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction While using the Query Document/Dataset flow action, it enables to execute a single Query on the data of a processed document, using CloudFiles: Query Document/Dataset (Batch) flow action enables to execute multiple queries on the data of a processed document or a dataset in a single action. ![](https://media.help.cloudfiles.io/fa-query-document-dataset-batch-sf/01.png) ## What this action does The CloudFiles: Query Document/Dataset (Batch) action enables you to execute multiple queries (natural language or English-language prompts) simultaneously on the data of a processed document or a dataset. The action processes all the queries in a single step and returns the results of all queries together in the action output. Imagine you are processing KYC files uploaded to Contact object records in action: - Using the Query Document/Dataset flow action you can classify the uploaded document as a Driving License, Passport, or neither. - Once classifed, the next step would be to extract all the relevant information, such as the Passport number, name, issue date, expiry date etc. from the document. - And then, update the corresponding fields on the Contact record. - Classification Query: - Prompt: "Check the type of file. If it's a Driving License, return 1; if it's a Passport, return 2; if neither, return 0." - Based on the result (e.g., 2 for Passport), the flow decides the next steps. - Decision Element: - Using the query result, the flow branches into specific paths for each document type. - Follow-Up Queries in a single CloudFiles: Query Document/Dataset (Batch) action: - For example, if the classification query returns 2 (Passport), the flow enters the "Is Passport" path and runs queries like: - "Extract the passport number." - "Extract the name on the passport." - "Extract the Issue Date" - "Extract the Expiry Date" - Instead, of using multiple Query Document/Dataset actions, you can use a single Query Document/Dataset (Batch) action and extract results of all the queries in a single output. By avoiding multiple Query Document/Dataset actions within a flow and using a single Query Document/Dataset (Batch) action you can build complex workflows that extract data from documents efficiently and avoid flow timeouts. ![](https://media.help.cloudfiles.io/fa-query-document-dataset-batch-sf/02.png) > **Note:** — Note: For best performance, keep the number of queries in a single Query Document/Dataset (Batch) action to around 5 queries. Running too many queries in one batch may increase processing time and can lead to Salesforce flow timeout issues. ## Input Parameters Let us discuss each of the input parameters in detail, in the sections below. ### Agent (Optional) The Agent parameter determines which AI agent CloudFiles uses when executing a query on a processed document. Agents define how the query is interpreted and answered. If a list of agents was passed in the Process Document using AI flow action, then the Query Document/Dataset (Batch) action can use one of those agents to get the response for one or more queries as specified. If you specify an agent in the Query Document/Dataset (Batch) action that is not among the document’s configured agents, the query will fail with an error. The following screenshot illustrates how to fill in the corresponding input values. ![](https://media.help.cloudfiles.io/fa-query-document-dataset-batch-sf/03.png) When a query is executed, the agent is selected in this order: - Agent explicitly provided in the Query Document/Dataset (Batch) action. - If none is specified, the first agent configured at the document level within "Process Document using AI" flow action. - If no document-level agents are available, the account-level default is used. This ensures that queries always run with a valid and supported agent, while still giving you flexibility to override defaults where necessary. ### Dataset Id Input the Dataset Id of the group of files on which you wish to execute the Query. > **Note** — When Dataset Id is provided, the queries are executed across all files in the dataset, enabling cross-document comparison and consolidated insights. > **Note** — The Dataset Id is a unique identifier provided by CloudFiles that represents the data of the collection of processed documents.How it is generated ?The Id is genrated when a file is processed using the Create Dataset flow action.After this process, a Dataset Created event is automatically published.How to retrieve it ?Use the Get Event Details flow action associated with the corresponding event to obtain the Id. > **Note** — Comparing Multiple Documents Using Batch QueriesImagine you are processing multiple versions of a contract uploaded to an Opportunity record. All versions of the contract are grouped together using the Create Dataset flow action.Using the Query Document/Dataset (Batch) flow action, you can analyze all documents in the dataset together and identify differences between them.Using this action, you can:Compare multiple documents in a dataset in a single step.Identify changes in clauses, dates, or financial terms.Determine whether the differences require review or approval.Comparison Queries Executed in a Single Batch ActionInstead of running multiple Query Document/Dataset actions, you can define multiple comparison-related prompts and execute them together using a single Query Document/Dataset (Batch) action.Example Prompts:Prompt 1 – Detect DifferencesCompare all documents in this dataset. Identify and list ONLY the differences between the documents. If no differences are found, return "NO_DIFFERENCES".Prompt 2 – Identify Financial ChangesCompare all documents in this dataset and identify any changes in payment terms, amounts, or due dates. If none are found, return "NO_FINANCIAL_CHANGES".Prompt 3 – Identify Clause ChangesCompare all documents in this dataset and identify any added, removed, or modified clauses. If none are found, return "NO_CLAUSE_CHANGES".Decision ElementUsing the results from the batch queries, the flow can branch into specific paths:If Prompt 1 returns anything other than NO_DIFFERENCES → Route for legal review.If only financial changes are detected → Route for finance approval.If no changes are detected → Proceed with automated approval.By using a single Query Document/Dataset (Batch) action with a Dataset Id, you can perform comprehensive cross-document analysis efficiently while avoiding multiple action calls and reducing the risk of flow timeouts. ### Processed Document Id Input the Processed Document Id of the file on which you wish to execute the Queries. > **Note** — The Processed Document Id is a unique identifier provided by CloudFiles that represents the data of a processed document.How it is generated ?The Id is genrated when a file is processed using the Process Document using AI flow action.After this process, a Document Processed event is automatically published.How to retrieve it ?Use the Get Event Details flow action associated with the corresponding event to obtain the Id.Alternatively, if you need to execute queries on a Salesforce File later or on-demand:Store the file's Processed Document Id in a custom Content Version field.This allows you to query the document anytime, without relying on the event.Note:The same Processed Document Id can be reused multiple times to reference the document and execute queries as needed. ### Prompts The Prompts input parameter is a collection variable (Apex-Defined type of Apex Class = cldfs__QueryDocumentPrompt) containing all the queries to execute on the file identified by the Processed Document Id. > **Steps to Configure Prompts-** — For each query, create a separate prompt variable.1 - Create Individual Prompt Variables For each query, create a separate prompt variable. Example Use Case: Extract four details (Passport Number, Name, Issue Date, Expiry Date) from a passport document.Create 4 prompt variables, each of type cldfs__QueryDocumentPrompt.The number of prompt variables depends on the queries you want to execute.2 - Assign QueriesFor each prompt variable:Assign a unique ID (used to map the result to its query).Assign the Query (a plain text prompt specifying the information to retrieve). You can directly pass a string as the query (e.g., "Extract the passport holder's name."). Alternatively, you can pass the query dynamically through a variable, formula etc. allowing to incorporate complex use cases.3 - Create a CollectionAfter defining and assigning all prompt variables:Create a collection variable of type cldfs__QueryDocumentPrompt.Add all these individual prompt variables to the collection.This collection will serve as the Prompts input parameter for the action. ## Output Parameters The action outputs Prompts (an Apex-Defined collection variable of Apex Class cldfs__QueryDocumentPrompt). This collection contains all the prompts that were input, along with their corresponding results. > **Steps to filter results from Outputs** — 1 - Loop through outputsUse a Loop element in your flow to iterate over the Prompts collection output by the action.Considering the same previous example. The Loop shall look something like this:2 - Add a decision to check the "ID" of Current PromptInsert a Decision element inside the loop to filter prompts based on their ID (assigned during input configuration). This helps identify which Prompt Result corresponds to which Prompt Query.3 - Assign the corresponding Result as neededAfter filtering the desired prompt using the Decision, access the Result field of that prompt variable. Assign the result to the appropriate field or use it as needed in the flow.With reference to the previous example, assign the Passport Number Result to the Record Field.These steps ensure you can efficiently extract and utilize query results from the output Prompts collection. --- # Split Document using AI https://help.cloudfiles.io/salesforce/split-document-using-ai # Split Document using AI The CloudFiles: Split Document Using AI flow action enables automated splitting of merged PDF files stored in Salesforce or external cloud storage into individual documents. By leveraging AI, the action intelligently identifies and separates multiple documents within a merged PDF. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The CloudFiles: Split Document Using AI flow action enables automated splitting of merged PDF files stored in Salesforce or external cloud storage into individual documents. By leveraging AI, the action intelligently identifies and separates multiple documents within a merged PDF. This is particularly useful for processing files like scanned bundles of invoices or multi-document contracts. ![](https://media.help.cloudfiles.io/fa-split-document-using-ai-sf/01.png) ## What this action does The CloudFiles: Split Document Using AI action asynchronously processes a merged PDF file—whether stored in Salesforce or external storage—and intelligently splits it into multiple individual documents based on its content. Once complete, it performs the following: - Publishes a Document Split event: This platform event includes metadata for each split file and can be used to trigger follow-up flows. - Uploads a searchable version of the original file: If the submitted document was a scanned, non-searchable file (e.g., image-based PDF), a searchable, OCR-enhanced version of the original merged file is also created and stored in the specified destination. - Auto-names each split file: Every generated split file is automatically named using AI, based on the content within that file (e.g., document type, person name, or reference ID). These enhancements allow for better indexing, file retrieval, and immediate usability of both the original and split documents. > **Example Use Case** — Automating the processing of uploaded invoice bundles. A merged PDF containing multiple invoices—often scanned and non-searchable—is submitted to the flow. The Split Document Using AI action processes the file, performs OCR to generate a searchable version of the original document, and splits it into individual invoice files.Each split file is:Auto-named using AI based on invoice-specific details (e.g., invoice number, vendor name).Saved alongside the searchable original file in a specified Salesforce record or external storage folder.This setup ensures improved document searchability, easier identification, and seamless automation of invoice handling or record updates in Salesforce. ## Input Parameters In your Flow Builder, search for the element named "CloudFiles: Split Document using AI". You can find this action in the CloudFiles category when you click on the "Action" element in the "Add Element" box. Select the action to insert it into the flow, and then configure the input parameters. ### To Split a Salesforce File In order to specify a Salesforce File to be processed, Input paramters as: - Library - salesforce(please note the parameters are case sensitive) - FileID - The ContentDocumentID of the Salesforce File to be split. > **Note** — You can get the ContentDocumentID of the Salesforce File from other standard salesforce elements like "Get Records" or standard Screen Flow "Upload Files" component or from details of CloudFiles Events like Salesforce File Attached. > **Note** — You can only split a Salesforce File in ContentDocument format.You cannot split an Attachment i.e. Classic Salesforce File format.It is mandatory to input both Library and FileID to specify a Salesforce File. ### To Split an External Storage File If you are using CloudFiles: Document Managemnt pacakage as well, then you can Process and Split the file in connected external storage as well. In order to specify an External Storage File to be processed, Input paramters as: - Library - The Library parameter is the external storage type you are using. Possible values are sharepoint, google (for Google Drive), azure, onedrive, dropbox, box, cloudfiles (for AWS S3). Please note the parameters are case sensitive. - Drive Id - The Id of the drive where the document resides. This is important for Google Drive & SharePoint libraries only. The Drive Id is a unique identifier for a storage location in both SharePoint and Google Drive. In SharePoint, it represents a document library within a site, while in Google Drive, it identifies a user's drive or shared drive. - File Id - The unique identifier (Resource Id) of the file that is to be processed. > **Note** — Based on the use case, you can get these parameters from details of other CloudFiles Events like File Uploaded or File Received etc. ### Context An optional identifier to track the source of the event or any other intended/necessary details. This shall be available in corresponding output i.e. in the corresponding Document Split event details. > **Note** — The Context parameter is particularly helpful if this action is used in multiple flows. For example, if you’re processing documents attached to Contact records, you can set the Contact’s Record Id as the Context. When events are published, this Context value will help you track the origin of each event by showing the associated Contact record. ### Instructions (Optional) You can guide the AI by adding specific instructions for how to interpret and split the document. Providing contextual cues can improve the accuracy of the split, especially for varied or non-standard formats. > **For example:** — “This is a bundle of scanned invoices. Each invoice starts with a bold header containing 'Invoice Number' and ends with a subtotal. Split at each occurrence of this pattern.” ### Destination The Destination parameter determines where the generated files will be stored after CloudFiles completes the splitting process. Steps to Configure Destination: - Create an Apex-Defined Variable of Apex Class cldfs__Resource ![](https://media.help.cloudfiles.io/fa-split-document-using-ai-sf/02.png) - Assign the necessary metadata (e.g., Library, Drive Id, Id) based on the chosen storage option. - To Save in Salesforce - Default Behavior (Salesforce Files): - If no destination parameter is specified, the files shall be stored in the Salesforce File Library. - Link to a Specific Record: - Assign the following fields: - Library: Set to salesforce. - Id: Set to the Record Id of the Salesforce record to which the files will be linked. ![](https://media.help.cloudfiles.io/fa-split-document-using-ai-sf/03.png) - To Store in External Storage - When using CloudFiles with the CloudFiles | Document Management & Sharing Platform: - Assign the following fields to define the external storage location: - Library: Specify the library name. - Drive Id: Specify the Id of the connected drive. - Id: Specify the Id of the folder or location within the drive. ![](https://media.help.cloudfiles.io/fa-split-document-using-ai-sf/04.png) - Pass the configured variable as the Destination Parameter in the CloudFiles: Split Document Using AI action. This setup provides flexibility to store files in Salesforce or external storage, aligning with your business needs. ## Output Parameters The apex action does not return anything as an output in the flow it is used but for every file processed for split, a Document Split event is published. This event signals the completion of document split and can be used to trigger platform event flows to perform post-split actions. --- # Misc Flow Actions https://help.cloudfiles.io/salesforce/misc-flow-actions # Misc Flow Actions This collection consists of all Miscellaneous flow actions. > Kind: Flow action · Updated: Jul 4, 2026 This collection consists of all Miscellaneous flow actions. - Assign User Licenses - This flow action enables Salesforce administrators to automate the assignment of CloudFiles product licenses to users, particularly useful in workflows where licenses need to be assigned efficiently without manual intervention. - Unassign User Licenses - This flow action allows Salesforce administrators to automate the removal of CloudFiles product licenses from users. - Delay - This flow action can be used in flows to add a pause to the flow execution, especially in asynchronous flow executions. - Get Event Details - This action can be used to get the details of a CloudFiles Event. This action should only be used in Platform Event Triggered flows, filtered on "CloudFiles Event". --- # Assign User Licenses (Flow Action) https://help.cloudfiles.io/salesforce/assign-user-licenses # Assign User Licenses The CloudFiles: Assign User Licenses flow action enables Salesforce administrators to automate the assignment of CloudFiles product licenses to users. This action is particularly useful in workflows such as onboarding new users, where licenses need to be assigned efficiently without manual intervention. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The CloudFiles: Assign User Licenses flow action enables Salesforce administrators to automate the assignment of CloudFiles product licenses to users. This action is particularly useful in workflows such as onboarding new users, where licenses need to be assigned efficiently without manual intervention. The image below illustrates how the Assign User Licenses action looks in a flow, along with its input parameters. Detailed descriptions of these inputs and outputs are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-assign-user-licenses-sf/01.jpg) ## What This Action Does The Assign User Licenses action automates the process of assigning CloudFiles product licenses to specified users. Scenario: For instance, when a new user is created in Salesforce by a system administrator, the Assign User Licenses action can assign the relevant CloudFiles product license to the user automatically. In the example below, a collection variable is used to store the newly created user's Salesforce User ID. This variable is then passed as input to the flow action to assign the license. ![](https://media.help.cloudfiles.io/fa-assign-user-licenses-sf/02.png) ## Input Parameters Here are the required input parameters for the Assign User Licenses action: ### Product Name Description: The name of the CloudFiles product for which the license is being assigned. - Valid Values: - document-management - document-generation - document-ai - Default Value: If no input is provided, document-management is used by default. ### User Ids User IDs - Description: A Text Collection of Salesforce User IDs for the users to whom the licenses will be assigned. - How to Use: Configure a Text Collection of Salesforce User IDs, even if used for a single User. > **Note** — This accepts only a Text Collection variable. ## Output Parameters The Assign User Licenses action provides the following outputs: ![](https://media.help.cloudfiles.io/fa-assign-user-licenses-sf/03.png) ### Licenses Remaining The count of remaining licenses of the specified Product available for assignment. ### Total Licenses The total number of licenses owned by the organization, including both assigned and unassigned licenses. --- # Unassign User Licenses (Flow Action) https://help.cloudfiles.io/salesforce/unassign-user-licenses # Unassign User Licenses The CloudFiles: Unassign User Licenses flow action allows Salesforce administrators to automate the removal of CloudFiles product licenses from users. This action is ideal for scenarios such as user offboarding. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction The CloudFiles: Unassign User Licenses flow action allows Salesforce administrators to automate the removal of CloudFiles product licenses from users. This action is ideal for scenarios such as user offboarding, where licenses need to be revoked and freed up for reassignment. The image below illustrates how the Unassign User Licenses action looks in a flow, along with its input parameters. Detailed descriptions of these inputs and outputs are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-unassign-user-licenses-sf/01.png) ## What This Action Does The Unassign User Licenses action automates the process of removing CloudFiles product licenses from specified users. For instance, when a user leaves the organization or is deactivated, the Unassign User Licenses action can automatically revoke their CloudFiles license, freeing it up for reassignment. ## Input Parameters Here are the required input parameters for the Unassign User Licenses action: ### Product Name - Description: The name of the CloudFiles product from which the license is being unassigned. - Valid Values: - document-management - document-generation - document-ai - Default Value: If no input is provided, document-management is used by default. ### User Ids User IDs - Description: A Text Collection of Salesforce User IDs for the users from whom the licenses will be unassigned. - How to Use: Configure a Text Collection of Salesforce User IDs, even if used for a single User. > **Note** — This accepts only a Text Collection variable. ## Output Parameters The Unassign User Licenses action provides the following outputs: ![](https://media.help.cloudfiles.io/fa-unassign-user-licenses-sf/02.png) ### Licenses Remaining The count of licenses available for reassignment after the action is executed. ### Total Licenses The total number of licenses owned by the organization, including both assigned and unassigned licenses. --- # Delay (Flow Action) https://help.cloudfiles.io/salesforce/delay # Delay The CloudFiles: Delay action can be used in flows to add a pause to the flow execution, especially in asynchronous flow executions. As the Salesforce flow builder doesn't provide the option to add a pause element or schedule an asynchronous flow, this flow action comes in handy in scenarios where you might need it. > Kind: Flow action · Updated: Apr 18, 2026 ## Introduction The CloudFiles: Delay action can be used in flows to add a pause to the flow execution, especially in asynchronous flow executions. As the Salesforce flow builder doesn't provide the option to add a pause element or schedule an asynchronous flow, this flow action comes in handy in scenarios where you might need it. The image below provides an overview of the input parameters and how this action appears in a Salesforce flow. Detailed descriptions of the input and output parameters are provided in the following sections. ![](https://media.help.cloudfiles.io/fa-delay/01.png) ## What this action does Example Use Case You have automations set up to create Lead folders for every new Lead record and Account folders for Account records. When a Lead is converted, you want to move its folder into the newly created Account folder automatically. Challenges: - Lead conversion creates an Account record. - Account folder creation is triggered asynchronously when an Account is created. - Moving the Lead folder immediately might fail if the Account folder hasn’t been created yet. Solution: Use the CloudFiles Delay action to introduce a safety pause in the Lead folder movement automation. This ensures that the Account folder is created before attempting to move the Lead folder into it. Steps - Trigger the Automation: Configure the flow to trigger when a Lead is converted (an Account record is also created simultaneously) - Add a Delay: Use the CloudFiles Delay action to pause the flow for a duration (e.g., 10 seconds or 10,000 milliseconds). - Move the Folder: After the delay, proceed with the logic to move the Lead folder into the corresponding Account folder. ![](https://media.help.cloudfiles.io/fa-delay/02.png) Key Benefits - Ensures Sequential Execution: Handles asynchronous processes by providing a buffer for dependent operations. - Improves Reliability: Reduces risks of errors caused by unavailability of resources (e.g., Account folder). - Simplifies Automation: Adds flexibility to flows that involve time-sensitive operations. This action is especially helpful in scenarios where external processes or asynchronous operations must complete before proceeding. ## Input Parameters ### Delay (milli seconds) - Description: Specify the pause duration in milliseconds. - Example: To add a pause of 10 seconds, input 10000. > **Use Caution** — Avoid specifying a delay longer than 20 seconds, as Salesforce flows may time out due to platform limits. ## Output Parameters This action does not produce any output. Its sole purpose is to introduce a delay in the flow execution. --- # Get Event Details (Flow Action) https://help.cloudfiles.io/salesforce/CFEG-get-event-details # Get Event Details Learn how to retrieve the details of a CloudFiles Event using an action in Platform Event Triggered flows. This document provides step-by-step instructions on configuring the action, including setting the event filter and reading the returned metadata. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction This action can be used to get the details of a CloudFiles Event. This action should only be used in Platform Event triggered flows, filtered on CloudFiles Event. The output of this action is extremely useful for anyone using CloudFiles Events. The data can be used in further flow elements for complex processes. For example, on file upload, you may want to create a custom object record to save some file metadata such as the file name, extension, external storage URL, date of upload etc... To correctly understand how to use this flow action, refer to the Platform Event Mode Flow Setup article that explains how to setup a platform event triggered flow in Salesforce to utilise the CloudFiles Platform events. ![](https://media.help.cloudfiles.io/fa-get-event-details-sf/01.png) ## What this action does? When provided with a valid CloudFiles Event Object, this action returns a complex data map which can be used to get useful parameters related to the triggered event. As an example, the Event Details flow action returns the Copied Salesforce File Details sub-type with useful information including source file id, destination file id, record id etc... which is useful when working with Salesforce File Copied event. This event is triggered when a file is successfully copied over to external storages from Salesforce using the Copy Salesforce Files flow action. > **Note** — To correctly understand how to use this flow action, refer to the Platform Event Mode Flow Setup article that explains how to setup a platform event triggered flow in Salesforce to utilise the CloudFiles Platform events. ## Input Parameters The action takes a single input which is the triggering record of the platform event triggered flow. (i.e. the CloudFiles Event Object discussed in the Platform Event Mode Flow Setup article). You don't need anything else to use this action. ![](https://media.help.cloudfiles.io/fa-get-event-details-sf/02.png) ## Output Parameters The output to this flow action can further be used in the flow. As shown below, this action outputs a variable which has output for each type of CloudFiles Event. Depending on the event type, you can check the individual outputs and use them in your processes. E.g. you can intercept the file uploaded event to capture the file name and the folder uploaded event to capture the folder name. ![](https://media.help.cloudfiles.io/fa-get-event-details-sf/03.png) For a full reference to all the event types and the related outputs, refer to All Event Types. --- # Screen Flow Elements https://help.cloudfiles.io/salesforce/screen-flow-elements # Screen Flow Elements This sub section provides an overview of the CloudFiles elements available for Salesforce Screen Flows, and how to set them up. > Kind: Flow action · Updated: Jul 4, 2026 This sub section provides an overview of the CloudFiles elements available for Salesforce Screen Flows, and how to set them up. - Internal Widget - This article explains how to configure the Internal Record Widget in Salesforce Screen Flows. It covers the basic setup and shows how the widget can be used to display files and folders linked to Salesforce records for internal users. - Experience Cloud Widget - This article explains how to configure the Experience Cloud Widget in Salesforce Screen Flows. It covers the basic setup and shows how the widget can be used to let external users securely access, upload, and manage files. - CloudFiles Uploader - This article explains how to configure the CloudFilesUploader component in Salesforce Screen Flows. It covers the basic setup and shows how the component can be used to upload files directly to external storage platforms. --- # Internal Widget https://help.cloudfiles.io/salesforce/internal-widget # Internal Widget This article explains how to set up the Internal Record Widget inside a Salesforce Screen Flow to support custom business requirements. It walks through the steps required to add and configure the widget in a flow so internal users can access and manage files related to Salesforce records. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction This article explains how to set up the Internal Record Widget inside a Salesforce Screen Flow to support custom business requirements. It walks through the steps required to add and configure the widget in a flow so internal users can access and manage files related to Salesforce records. To learn more about the Internal Record Widget, see Internal Record Widget. ### 1. Create a Screen Flow Create a Screen Flow and implement your business requirements before displaying the CloudFiles Widget on a screen. Next, create a variable named recordId with the following configuration: - Set Data Type to Text. - Set Available for input to True so the flow can dynamically receive the record ID. - Set Allow multiple values (Collection) to False. ![](https://media.help.cloudfiles.io/fa-internal-widget-sf/01.gif) ### 2. Add Widget to Screen Flow Add a Screen element to the flow. Inside the screen, search for CloudFiles, then drag and drop the CloudFiles Widget onto the screen. Configure the widget by passing the following values: - Record Type – Enter the API name of the object. (e.g Account) - Record Id – Pass the {!recordId} variable created earlier. - Widget Type - Enter attachments text as input This allows the widget to load files and folders linked to the current Salesforce record. ![](https://media.help.cloudfiles.io/fa-internal-widget-sf/02.gif) ### 3. Save and Activate the Flow Once the flow configuration is complete, save the flow and activate it. Make sure all required inputs are properly configured so the widget can receive the correct record context when the flow is launched. ### 4. Place the Flow on a Record Page Go to the record page of the relevant object, click the Gear icon, and then select Edit Page. From the components panel, search for Flow, then drag and drop it into the desired location on the page. Next, select the flow that you created with the widget so it is displayed on the record page. Once you have finished, save and activate the record page. You will then be able to see the Screen Flow with the CloudFiles Widget on it. ![](https://media.help.cloudfiles.io/fa-internal-widget-sf/03.gif) ### Result This is how the widget appears inside the Screen Flow. Users can perform all the same operations available in the Internal Widget. ![](https://media.help.cloudfiles.io/fa-internal-widget-sf/04.png) --- # Experience Cloud Widget (Flow Action) https://help.cloudfiles.io/salesforce/experience-cloud-widget # Experience Cloud Widget This article explains how to set up the Experience Cloud Widget inside a Salesforce Screen Flow to support custom business requirements. It walks through the steps required to add and configure the widget in a flow so users can access and manage files related to Salesforce records. > Kind: Flow action · Updated: Jul 4, 2026 ## Introduction This article explains how to set up the Experience Cloud Widget inside a Salesforce Screen Flow to support custom business requirements. It walks through the steps required to add and configure the widget in a flow so users can access and manage files related to Salesforce records. To learn more about the Experience Cloud Widget, see Experience Cloud. ### Prerequisite: This article assumes that you already have an existing Experience Cloud site and want to incorporate the Experience Cloud Widget into a Salesforce Screen Flow. ### 1. Create a Screen Flow Create a Screen Flow and implement your business requirements before displaying the CloudFiles Community Widget on a screen. Next, create a variable named recordId with the following configuration: - Set Data Type to Text - Set Available for input to True so the flow can dynamically receive the record ID - Set Allow multiple values (Collection) to False. ![](https://media.help.cloudfiles.io/fa-experience-cloud-widget-sf/01.gif) ### 2. Add Widget to Screen Flow Add a Screen element to the flow. Inside the screen, search for CloudFiles, then drag and drop CloudFiles Community onto the screen. Configure the widget with the following values: - Record Type – Enter the API name of the object, for example Account - Record Id – Pass the {!recordId} variable created earlier This configuration allows the widget to load files and folders shared with the current Salesforce record. ![](https://media.help.cloudfiles.io/fa-experience-cloud-widget-sf/02.gif) ### 3. Save and Activate the Flow Once the flow configuration is complete, save the flow and activate it. Make sure all required inputs are properly configured so the widget can receive the correct record context when the flow is launched. ### 4. Add the Flow to the Experience Cloud Site Open your Experience Cloud site in Experience Builder, then locate the Flow component in the components panel and drag it onto the desired page. Next, select the flow that you created with the Experience Cloud Widget. After that, save your changes and publish the site. The Screen Flow with the Experience Cloud Widget is then available on your Experience Cloud page. ![](https://media.help.cloudfiles.io/fa-experience-cloud-widget-sf/03.gif) ### Result This is how the widget appears inside the Screen Flow. Users can perform all the same operations available in the Community Widget. ![](https://media.help.cloudfiles.io/fa-experience-cloud-widget-sf/04.png) --- # CloudFiles Uploader https://help.cloudfiles.io/salesforce/cloudfiles-uploader # CloudFiles Uploader This article explains how to set up the CloudFiles Uploader inside a Salesforce Screen Flow to support custom business requirements. It walks through the steps required to add and configure the component in a flow so users can upload files directly to external storage without interacting with the CloudFiles Widget. > Kind: Flow action · Updated: Jul 4, 2026 This article explains how to set up the CloudFiles Uploader inside a Salesforce Screen Flow to support custom business requirements. It walks through the steps required to add and configure the component in a flow so users can upload files directly to external storage without interacting with the CloudFiles Widget. To learn more about the CloudFiles Uploader, see CloudFiles Uploader Widget. ## Prerequisite Create a Screen Flow and implement your business requirements before adding the CloudFiles Uploader component to a screen. ## 1. Add Widget to Screen Flow Add a Screen element to the flow. Inside the screen, search for CloudFiles Uploader, then drag and drop the component onto the screen. Configure the component with the following values: - Accepted Formats – Enter the file formats that users are allowed to upload, for example jpg, pdf, png. This is an optional parameter. - Drive Id – Enter the ID of the drive where the destination is located. - Folder Id – Enter the ID of the folder in the external storage where you want to upload the files. - Library – Enter the name of your external library. - Max File Size (MB) - Enter the maximum file size, in MB, that users are allowed to upload. - Max Files (0 = unlimited) - Enter the maximum number of files users can upload. Use 0 to allow unlimited uploads. This configuration allows the component to upload files to the specified location in your external storage. ![](https://media.help.cloudfiles.io/fa-cloudfiles-uploader-sf/01.gif) ## 2. Save and Activate the Flow Once the flow configuration is complete, save the flow and activate it. Make sure all required inputs are configured correctly so the component can upload files to the intended external storage location. ## 3. Place the Flow on a Record Page Go to the record page of the relevant object, or the relevant Lightning page where you want to embed the Screen Flow, click the Gear icon, and then select Edit Page. From the components panel, search for Flow, then drag and drop it into the desired location on the page. Next, select the flow that you created so it is displayed on the page. Once you have finished, save and activate the page. The Screen Flow with the CloudFiles Uploader is then available on the record page or Lightning page. ## Result This is how the CloudFiles Uploader appears inside the Screen Flow. Users can upload files directly to the configured external storage location from the flow. ![](https://media.help.cloudfiles.io/fa-cloudfiles-uploader-sf/02.gif) --- ## Salesforce Events --- # Intercepting CloudFiles Events https://help.cloudfiles.io/salesforce/intercepting-cloudfiles-events # Intercepting CloudFiles Events When CloudFiles fires an event, you can intercept it using a custom object record triggered flow or a platform event flow, depending on the configured Event Mode. > Kind: Event · Updated: Jul 4, 2026 When CloudFiles fires an event, you can either intercept it using a custom object record triggered flow or a platform event flow. You need to ensure the correct mode is selected and then create a flow accordingly to intercept the event. Refer to the sections below. ## Setting the Event Mode To ensure that you are setup with the correct approach, head over to the CloudFiles App Launcher > Settings Tab on Top > CloudFiles Event Mode section. Selecting the 'Custom Object' setting lets CloudFiles creates custom objects which can be used for record triggered flows. ![](https://media.help.cloudfiles.io/evt-intercepting-cloudfiles-events-sf/01.png) Once you have the correct setting selected, use one of the following articles to start setting up the flow(s). ## Custom Object Mode CloudFiles can create custom object records in your Salesforce when events occur. You can use simple record triggered flows on the CloudFiles Event custom object. This is the default behaviour and the recommended approach. Use the article on Custom Object Mode Flow Setup to setup the flow for this mode. Here's a snapshot of how this flow looks- ![](https://media.help.cloudfiles.io/evt-intercepting-cloudfiles-events-sf/02.png) ## Platform Event Mode CloudFiles also fires platform events into your Salesforce when events occur. These can be intercepted using the Salesforce Platform Events Flow feature. This approach is harder to debug and hence not recommended. Use the article on Platform Event Mode Flow Setup to setup the flows for Platform event Mode. Here's a snapshot of how this flow looks like- ![](https://media.help.cloudfiles.io/evt-intercepting-cloudfiles-events-sf/03.png) --- # Custom Object Mode Flow Setup https://help.cloudfiles.io/salesforce/custom-object-mode-flow-setup # Custom Object Mode Flow Setup Explains how to set up a record-triggered flow using the CloudFiles Event custom object, filter by event and object type, retrieve event details via the Get Event Details flow action, and configure event object retention. > Kind: Event · Updated: Jul 4, 2026 ## Introduction To use CloudFiles Events, you can setup a record triggered flow using the CloudFiles Event custom object. This object can then be filtered based on type and triggering object, and then passed to the very useful Get Event Details flow action which provides the exhaustive list of event details. This article explains the process of setting up this flow. We first provide a small summary of how to set up this flow before giving a comprehensive step by step guide with screenshots. ## Summary We will follow 3 steps to setup the CloudFiles Event Handler: - Create an empty Record triggered flow with the CloudFiles Event object as the trigger. - Create a decision element to filter flow executions based on event & object types. - Use the output of the Get Event Details flow action to process the event. Here is how our final flow looks. Follow the steps in the next section with screenshots for detailed information- ![](https://media.help.cloudfiles.io/evt-custom-object-mode-flow-setup-sf/01.png) ## Step By Step Guide ## 1 - Create a Record Triggered Flow Salesforce provides many types of flows. E.g. Platform Event triggered flows, auto-launched flows etc... Record Triggered flows are another type of flow that can be set up using the Salesforce flow builder. To create a recpord triggered flow, go to the Salesforce flow builder, create a new flow and select the type as Record - Triggered Flow as shown in the screenshot below- ![](https://media.help.cloudfiles.io/evt-custom-object-mode-flow-setup-sf/02.png) Once the flow is created, you will be asked to choose a Object which would trigger this flow. Select the "CloudFiles Event" from the list of events as shown below- ![](https://media.help.cloudfiles.io/evt-custom-object-mode-flow-setup-sf/03.png) Make sure to check the box to run the flow in asynchronous mode, as CloudFiles events only execute along the asynchronous path. ![](https://media.help.cloudfiles.io/evt-custom-object-mode-flow-setup-sf/04.png) With this, you now have empty Record - Triggered flow set to trigger whenever a CloudFiles Event record is created. In the next section, we will learn how to filter based on the event type and other parameters. This must be done before moving to the further step of making a callout to receive the event details. ## 2 - Add a decision element on the CloudFiles Event Object Now that we have a Record-Triggered flow setup, it will trigger on every CloudFiles event. It is necessary to filter based on event type to receive the event details correctly. It is also important to filter based on the object types where you need this flow to trigger. These decisions can be set up using two important fields provided by the CloudFiles Event Object itself. This is shown in the image below. The CloudFiles event Object is the 'Record' on which the record triggered flow, triggers. This record can have very limited information due to certain Salesforce restrictions. For this reason, CloudFiles Event Object only carries 2 important fields. - Type - This refers to the type of event. E.g. file-uploaded, salesforce-file-attached, etc... A full list is provided in our article for All Event Types. - Object Type – This refers to the API name of the Salesforce record type on which you want to intercept these events. For example, to intercept file uploads into the Salesforce Files component on Account records, you would use: Type = salesforce-file-attached and Object Type = Account. > For some event types, you will not get the Object Type value through this field. Instead of relying on it, we recommend performing the object type check using the output from the Get Event Details flow action, as shown in the image below. This object DOES NOT carry any actual details related to the event. Refer to the next step for this. There are other fields as well but they are not meant for your use. For a full reference, refer the article on CloudFiles Event Custom Object. > It is important to note that the actual details of the event are not present in the CloudFiles Event object. The Get Event Details flow action is used to get the actual event details. Refer to the next step for more info on this. ![](https://media.help.cloudfiles.io/evt-custom-object-mode-flow-setup-sf/05.png) At this point, we have a record triggered flow that only continues under certain conditions. Now, in order to actually do something useful with this flow, we will see how to get & interpret the event details. Check out the next step. ## 3 - Get Event Details using the flow action In this step, we will use the flow action Get Event Details to get the data related to the event. This data can be used in further flow elements. For example, on file upload, you may want to create a custom object record to save some file metadata such as the file name, extension, external storage URL, date of upload etc... In order to use this action, simply insert the flow action named "Get Event Details" and configure it as shown below. The action takes a single input which is the triggering record (i.e. the CloudFiles Event Object we discussed in the above step). You don't need anything else to use this action. ![](https://media.help.cloudfiles.io/evt-custom-object-mode-flow-setup-sf/06.png) The output to this flow action can further be used in the flow. As shown below, this action outputs a variable which has an output for each type of CloudFiles Event. Depending on the event type, you can check the individual outputs and use them in your processes. E.g. you can intercept the file uploaded event to capture the file name and the folder uploaded event to capture the folder name. ![](https://media.help.cloudfiles.io/evt-custom-object-mode-flow-setup-sf/07.png) For a full reference to this flow action, refer to the Get Event Details flow action. For a full reference to all the event types and the related outputs, refer to All Event Types. ## Configuring CloudFiles Event Object Retention When using Custom Object mode for CloudFiles Events, the CloudFiles Event object records are created in your Salesforce org each time an event occurs. To manage storage and maintain optimal org performance, you can configure how long these records are retained before being automatically deleted. To configure the retention period: - Navigate to Settings > Account in CloudFiles - Scroll to the CloudFiles Event Mode section - Under CloudFiles Event Object Retention Days, enter the number of days you want to retain the event records - The default value is 7 days ![](https://media.help.cloudfiles.io/evt-custom-object-mode-flow-setup-sf/08.png) > **Note** — Choose a retention period that balances your needs for event history with storage considerations. A longer retention period provides more historical data but consumes more storage space. --- # Platform Event Mode Flow Setup https://help.cloudfiles.io/salesforce/platform-event-mode-flow-setup # Platform Event Mode Flow Setup Explains how to set up a Platform Event triggered flow in Salesforce to intercept CloudFiles Events and retrieve event details using the Get Event Details flow action. > Kind: Event · Updated: Jul 4, 2026 ## Introduction To use CloudFiles Platform Events, you can setup a platform event triggered flow that can intercept the CloudFiles Event and get the event details using the very useful Get Event Details flow action. This article explains the process of setting up this flow. In this article, we provide a small summary of how to set up this flow before giving a comprehensive step by step guide with screenshots. ## Summary We will follow 3 steps to setup the CloudFiles Event Handler: - Create an empty Platform event triggered flow with the CloudFiles Event as the trigger. - Create a decision element to filter flow executions based on event & object types. - Use the output of the Get Event Details flow action to process the event and setup specific custom use-cases. Here is how our final flow looks. Follow the steps in the next section with screenshots for detailed information. ![](https://media.help.cloudfiles.io/evt-platform-event-mode-flow-setup-sf/01.png) ## Step By Step Guide ## 1 - Create a Platform Event Triggered Flow Salesforce provides many types of flows. E.g. record triggered flows, auto-launched flows etc... Platform Event Triggered flows are another type of flow that can be set up using the Salesforce flow builder. These flows are special, and can be triggered by external applications such as CloudFiles. To create a platform event triggered flow, go to the Salesforce flow builder, create a new flow and select the type as Platform Event - Triggered Flow as shown in the screenshot below. ![](https://media.help.cloudfiles.io/evt-platform-event-mode-flow-setup-sf/02.png) Once the flow is created, you will be asked to choose a Platform Event which would trigger this flow. Select the "CloudFiles Event" from the list of events as shown below - ![](https://media.help.cloudfiles.io/evt-platform-event-mode-flow-setup-sf/03.png) With this, you now have empty Platform event flow set to trigger whenever a CLoudFiles Event happens. In the next section, we will learn how to filter based on the event type and other parameters. This must be done before moving to the further step of making a callout to receive the event details. ## 2 - Add a decision element on the CloudFiles Event Object Now that we have a Platform event flow setup, it will trigger on every CloudFiles event. It is necessary to filter based on event type to receive the event details correctly. It is also important to filter based on the object types where you need this flow to trigger. These decisions can be set up using two important fields provided by the CloudFiles Event Object itself. This is shown in the image below. The CloudFiles event Object is the 'Record' on which the Platform event triggered flow, triggers. This record can have very limited information due to certain Salesforce restrictions. For this reason, CloudFiles Event Object only carries 2 important fields. - Type - This refers to the type of event. E.g. file-uploaded, salesforce-file-attached, etc... A full list is provided in our article for All Event Types. - Object Type - This refers to the API name of the Salesforce record Type on which you want to intercept these events. E.g. to intercept file uploads into the salesforce files component on the Account records, we would use Type = salesforce-file-attached, and the Object Type = Account. This object DOES NOT carry any actual details related to the event. Refer to next step for this. There are other fields as well but they are not meant for your use. For a full reference, refer the article on CloudFiles Event Object. > It is important to note that the actual details of the event are not present in the CloudFiles Event object. The Get Event Details flow action is used to get the actual event details. Refer to the next step for more info on this. ![](https://media.help.cloudfiles.io/evt-platform-event-mode-flow-setup-sf/04.png) At this point, we have a platform triggered flow that only continues under certain conditions. Now, in order to actually do something useful with this flow, we will see how to get & interpret the event details. Check out the next step. ## 3 - Get Event Details using the flow action In this step, we will use the flow action Get Event Details to get the data related to the event. This data can be used in further flow elements. For example, on file upload, you may want to create a custom object record to save some file metadata such as the file name, extension, external storage URL, date of upload etc... In order to use this action, simply insert the flow action named "Get Event Details" and configure it as shown below. The action takes a single input which is the triggering record (i.e. the CloudFiles Event Object we discussed in the above step). You don't need anything else to use this action. ![](https://media.help.cloudfiles.io/evt-platform-event-mode-flow-setup-sf/05.png) The output to this flow action can further be used in the flow. As shown below, this action outputs a variable which has an output for each type of CloudFiles Event. Depending on the event type, you can check the individual outputs and use them in your processes. E.g. you can intercept the file uploaded event to capture the file name and the folder uploaded event to capture the folder name. ![](https://media.help.cloudfiles.io/evt-platform-event-mode-flow-setup-sf/06.png) For a full reference to this flow action, refer to the Get Event Details flow action. For a full reference to all the event types and the related outputs, refer to All Event Types. --- # CloudFiles Event Object https://help.cloudfiles.io/salesforce/cloudfiles-event-object # CloudFiles Event Object Learn how to use the "CloudFiles Event" platform event in Salesforce to trigger flows and retrieve data related to file-related actions. > Kind: Event · Updated: Jul 4, 2026 ## Introduction On various actions related to files, CloudFiles publishes a Salesforce platform event named CloudFiles Event. This Event has following fields- - Type - Type of the event. For example - file-uploaded, folder-created etc. - Object Type - Salesforce record type where the event originated. Example - Account, Case etc. - DO NOT USE Fields - The data & Request Id fields are not useful under any circumstances. Contact us if you feel the need to use them. Below section gives more details on these. ## Event Fields ## Type Field Name: cldfs_Type_c This field provides information on the type of event published. For example, a CloudFiles event is published whenever a Salesforce File is attached to a Salesforce record. The event is also published whenever a file is uploaded in the CloudFiles widget (i.e. directly to SharePoint). The type field of this event is going to be salesforce-file-attachedor file-uploaded based on the reason of the event. There are several types of events published. You can find the exact text values for each event type in the respective articles. These are indexed in All Event Types. ## Object Type - Field Name: cldfs_Object_Type_c This field provides information on the Object on which the CloudFiles event or action is performed. For example, for a salesforce file attached onto an Account record, the Object Type field of the event is going to be Object API Name i.e. Account. Use the Salesforce Object API Name to filter using this field. For event originated outside a record context, this field is null ## DO NOT USE Fields The following fields should not be used by you in your implementation. If you feel the need to use these fields in any way and you have explored all other alternatives, you should contact our team first. These fields are not designed to be used by the implementation. - Data - Data related to the event. This field is used internally by the Get Event Details flow action to return the event details. This does not represent the full event details which is actually returned by the Get Event Details action. Refer to step 2 & 3 in the Platform Event Mode Flow Setup article. - Request Id - Exists when the event is published as a result of an asynchronous action. This is not useful. --- # All Event Types https://help.cloudfiles.io/salesforce/all-event-types # All Event Types Complete list of CloudFiles Event Types, each linking to an individual article covering the Get Event Details output and use-cases for that event. > Kind: Event · Updated: Jul 4, 2026 Based on the information in the Intercepting CloudFiles Events article on how to correctly set up the flow to intercept the CloudFiles event, you should have a valid output in the Get Event Details action. Once you have that, you can now use the variety of CloudFiles Event Types to receive various types of information and perform your desired actions. ## List of CloudFiles Event Types Here is the complete list. Each item has an individual article that explains the output of the Get Event Details action as well as lay down some use-cases for the specific event type. > Make sure you read and understand the Intercepting CloudFiles Events article before attempting to read and use outputs given in the below articles. - Content Version Created - This event is published when a Create Salesforce File flow action action successfully creates a Salesforce File (Content Document) from an external storage file. - Content Version Created Batch - This event is published when a Create Salesforce Files (Batch) flow action action successfully creates all the Salesforce Files (Content Document) from a list of external storage files. - Dataset Created - The event is triggered when a dataset is successfully created using the Create Dataset flow action, allowing downstream processes or workflows to start using actions like Query Document/Dataset. - Document Generated - This event is published whenever a document is generated using the Generate Document or Generate Document (Batch) flow action, providing details about the generated file in Salesforce. - Document Mapper Run - The event is triggered after a document is uploaded and processed through CloudFiles’ Document Mapper, once AI field extraction is completed and Salesforce records are created or updated. - Document Processed - This event is published when a file is processed using the Process Document using AI action, enabling downstream processes or workflows to use actions like Query Document/Dataset. - Document Signed - This event is triggered when a document sent via DocuSign is signed. Once the signing workflow is complete, DocuSign returns the final PDF to Salesforce, automatically triggering this event. - Document Split - This event is published once a merged file (a PDF file created merging by merging different files into one ) is split into multiple files intelligently /automatically by CloudFiles Document AI using Split Document using AI flow action. - Error Event - The event is triggered when a CloudFiles flow action fails, giving users real-time insights into the failed action. - File Received - This event is published when a file is uploaded using the File Request module in a CloudFiles Dataroom, allowing users to configure file requests and specify a destination folder for uploaded files. - File Replaced - This event is published when an External Storage File is replaced using CloudFiles LWC from within Salesforce. - File Uploaded - This event is published when a file is uploaded to external storage through the CloudFiles widget on a record page in Salesforce. - File Viewed - This event is published when a file is viewed through the sharing link generated by CloudFiles in Salesforce. - Folder Created - This event is published when a Create Folder (Async) flow action execution successfully creates a Folder in the specified external storage. - Resource Attached - This event is published when a file/folder in external storage is attached to a Salesforce record. - Resource Cloned - This is published for every successful external resource cloning of resources input in a Copy Resources flow action, useful in scenarios where the cloning of Resources needs to initiate downstream processes or workflows. - Resource Deleted - This is triggered whenever a resource (file or folder) is deleted using the CloudFiles LWC (Lightning Web Component). - Resource Detached - This event is triggered when a file or folder is disconnected from a Salesforce record, either manually or through the Delete Attachment flow. It supports automations like logging, cleanup, archival, or related record updates. - Resource Moved - This event is triggered when a file or folder is relocated in external storage via CloudFiles, either through the Lightning Widget or a Move Resource flow. It can be used to drive notifications, logging, or other automated actions. - Resource Updated - This event is published when metadata of a Resource (file or folder) is updated or changed from Salesforce using CloudFiles. - Salesforce File Attached - This event is published when a file is uploaded to Salesforce native storage, through "Files" or "Notes & Attachments" section. - Salesforce File Copied - This event is published when a Salesforce file is copied to an external storage by Copy Salesforce Files flow action. --- # Content Version Created https://help.cloudfiles.io/salesforce/content-version-created # Content Version Created The Content Version Created Event is published when a Create Salesforce File flow action successfully creates a Salesforce File (Content Document) from an external storage file. > Kind: Event · Updated: Jul 4, 2026 ## Overview The Content Version Created Event is published when a Create Salesforce File flow action successfully creates a Salesforce File (Content Document) from an external storage file. This event is particularly useful in scenarios where the creation of Salesforce Files needs to initiate downstream processes or workflows. ## How To Use This Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-content-version-created-sf/01.png) ## Event Type For Decision Filter Please use content-version-created as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Content Version Created sub-type with useful information including the created Salesforce File's ContentVersionId, corresponding External Storage File's metadata details, File Name and Parent Id (i.e. Record Id input in the corresponding Create Salesforce File action). Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-content-version-created-sf/02.png) - File - A lookup Field of type Resource ( cldfs_Resource )which shall contain the external storage file's metadata details. - driveId - The external storage Drive Id of the file. - id- The unique Resource Id of the file in external storage. - library- The External Storage Library (Ex sharepoint) - name- The Name of the File - path- The Storage Location Path of the File (Null if the storage is Google Drive) - type- Always file - ContentVersionId - The Record Id of the created Salesforce File's Content Version - FileName - The created Salesforce File's Name - ParentId - The Text string input in the corresponding Create Salesforce File action. (e.g., the Record Id or any other identifier provided during the action). --- # Content Version Created Batch https://help.cloudfiles.io/salesforce/content-version-created-batch # Content Version Created Batch The Content Version Created Batch Event is published when a Create Salesforce Files (Batch) flow action successfully creates all Salesforce Files from a list of external storage files. > Kind: Event · Updated: Jul 4, 2026 ## Overview The Content Version Created Batch Event is published when a Create Salesforce Files (Batch) flow action successfully creates all the Salesforce Files (Content Document) from a list of external storage files. This event is particularly useful in scenarios where the creation of Salesforce Files needs to initiate downstream processes or workflows. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-content-version-created-batch-sf/01.png) ## Event Type For Decision Filter Please use content-version-created-batch as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Content Version Created (Batch) sub-type with useful information including the created Salesforce Files ContentVersionIds, corresponding External Storage Files metadata details, and Parent Id (i.e. Record Id input in the corresponding Create Salesforce Files (Batch) action). Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-content-version-created-batch-sf/02.png) - ContentVersionsCreated - A collection lookup Field which shall contain list of corresponding Content Version Created event details. ![](https://media.help.cloudfiles.io/evt-content-version-created-batch-sf/03.png) - ContentVersionIds - The Text Collection RecordIds of the created Salesforce Files Content Versions - ParentId - The text string input into the corresponding Create Salesforce Files (Batch) action. (e.g., the Record Id or any other identifier provided during the action). --- # Dataset Created https://help.cloudfiles.io/salesforce/dataset-created # Dataset Created This event is published whenever a dataset is successfully created using the Create Dataset flow action. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published whenever a dataset is successfully created using the Create Dataset flow action. This event is particularly useful in scenarios where the processing of Resources needs to initiate downstream processes or workflows containing actions like Query Document/Dataset or Query Document/Dataset (Batch). ## How To Use This Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-dataset-created-sf/01.png) ## Event Type For Decision Filter Please use dataset-created as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Dataset Created details with useful information that can be used for further processing. Refer to the image below for a list of outputs: ![](https://media.help.cloudfiles.io/evt-dataset-created-sf/02.png) - DatasetId This field contains the unique identifier of the newly created dataset. The Dataset Id can be reused as often as needed to reference the document for various CloudFiles Document AI actions. ![](https://media.help.cloudfiles.io/evt-dataset-created-sf/03.png) - Context The context value specified in the input, which helps identify the event’s source or any other intended details. --- # Document Generated https://help.cloudfiles.io/salesforce/document-generated # Document Generated This event is published for every document generated using the Generate Document or Generate Document (Batch) flow action. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published for every document generated using the Generate Document or Generate Document (Batch) flow action. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-document-generated-sf/01.png) ## Event Type For Decision Filter Please use document-generated as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Document Generated details with useful information including file resource, ContentVersionId, name and parent id for further use. Refer to the image below for a list of outputs: ![](https://media.help.cloudfiles.io/evt-document-generated-sf/02.png) - File - This field specifies the metadata details of the generated file. - This parameter is populated only if the Destination input parameter was configured in the corresponding Generate Document action. If not, it will be null. - Field Details: - When saved in Salesforce and linked to a record: - id: The generated file's Content Document ID. - library: salesforce. - Other fields will be null. - When saved in external storage: - Contains metadata details of the file stored in the external storage. - ContentVersionId - This is the content version Id of the file that is generated. - If no Destination parameter is specified in the corresponding Generate Document action, the file is stored in the Salesforce File Library. - This field holds the Content Version ID of the generated file in Salesforce. - Name - The name of the generated document. - ParentId - Record Id on which the document is generated. --- # Document Mapper Run https://help.cloudfiles.io/salesforce/document-mapper-run # Document Mapper Run This event is published when a document is processed using CloudFiles' Document Mapper action, after AI-powered field extraction completes and Salesforce records are created or updated. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published when a document is processed using CloudFiles’ Document Mapper action. This occurs after a user uploads a file through a Document Mapper configuration (for example, via a custom list view or detail page button). Once the AI-powered field extraction completes and Salesforce records are created or updated from the file, the event is fired. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-document-mapper-run-sf/01.png) ## Event Type For Decision Filter Please use document-mapper-run as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Document Mapper Run event subtype with useful information, including details about the file, the mapping configuration, and the Salesforce record involved. Refer to the image below for a list of outputs - ![](https://media.help.cloudfiles.io/evt-document-mapper-run-sf/02.png) ### 1 - ConfigId The unique CloudFiles identifier of the Document Mapper configuration that was used to process the document. This ID corresponds to the mapping setup that defines how fields are extracted and mapped ### 2 - FileId The unique resource identifier of the file that was processed by the Document Mapper. For Salesforce files, this will be the ContentDocumentId; for external files, it will be the external file’s ID. ### 3 - RecordId The Salesforce Record Id that was impacted by the mapping. If the Document Mapper was run in “update” mode, this will be the Id of the record that was updated. If run in “create” mode (from a list view), this will be the Id of the primary record that was created. --- # Document Processed https://help.cloudfiles.io/salesforce/document-processed # Document Processed This event is published once a file is processed by CloudFiles Document AI using the Process Document using AI action. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published once a file is processed by CloudFiles Document AI using Process Document using AI action. This event is particularly useful in scenarios where the processing of Resources needs to initiate downstream processes or workflows containing actions like Query Document/Dataset or Query Document/Dataset (Batch). ## How To Use This Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-document-processed-sf/01.png) ## Event Type For Decision Filter Please use document-processed as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details Refer to the image below for a list of outputs- ![](https://media.help.cloudfiles.io/evt-document-processed-sf/02.png) 1 - ProcessedDocumentID The Processed Document ID is a unique CloudFiles identifier that represents the data of a processed document. The ProcessedDocumentID can be reused as often as needed to reference the document for various CloudFiles Document AI actions. > The ProcessedDocumentID is a mandatory input parameter for actions like Query Document/Dataset or Query Document/Dataset (Batch). 2 - Context The context value specified in the input, which helps identify the event’s source or any other intended details. 3 - File Details of the processed file specified in the input, which helps identify the file post processing. ![](https://media.help.cloudfiles.io/evt-document-processed-sf/04.png) > If the processed File is a Salesforce File, then:Output File's Library will be salesforce.Output File's Id will be ContentDocumentId of the Salesforce File.If an External Storage's File is processed, then the file's metadata is output. --- # Document Signed https://help.cloudfiles.io/salesforce/document-signed # Document Signed This event is published when a document signing process is completed through DocuSign integration. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published when a document signing process is completed through DocuSign integration. When you generate a document with DocuSign recipients and send it for signing, DocuSign processes the signing workflow and returns the final signed PDF to Salesforce, automatically triggering this event. ## How to use this Event? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-document-signed-sf/01.png) ## Event Type For Decision Filter Please use document-signed as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Document Signed details with the same structure as the document-generated event, providing useful information including file resource, ContentVersionId, name and parent id for further use. Refer to the examples below for the output structure: ![](https://media.help.cloudfiles.io/evt-document-signed-sf/02.png) ### Field Structure - File - This field specifies the metadata details of the signed document file. - This parameter is populated only if the Destination input parameter was configured in the original Document Genrated action (only in case of flows, the call automatically checks for recipient and docusign integration and triggers this action). If not, it will be null. - Field Details: - When saved in Salesforce and linked to a record: - id: The signed file's Content Document ID. - library: salesforce. - name: The document name with "_signed" suffix. - Other fields will be null. - When saved in external storage: - Contains metadata details of the file stored in the external storage. - ContentVersionId - This is the content version Id of the signed file. - If no Destination parameter was specified in the original Document Generated action, the signed file is stored in the Salesforce File Library. - This field holds the Content Version ID of the signed document in Salesforce. - Name - The name of the signed document (typically includes "_signed" suffix). - RecordId - Record Id on which the original document was generated and to which the signed document is now linked. ## DocuSign Integration Workflow The DocuSign integration follows this process: - Document Generation: When a document is generated with DocuSign recipients specified, it is automatically prepared for the signing workflow. - Send for Signing: - Manual Trigger: Use the Send for Signing button in the doc-gen widget or Word template interface to initiate the DocuSign process. - Flow Action: When generating documents via flow actions, the sending process is handled automatically without requiring the manual button step. - DocuSign Processing: DocuSign manages the signing workflow according to the recipient configuration. - Completion Callback: Once all required signatures are collected, DocuSign returns the final signed PDF to Salesforce. - Event Trigger: The document-signed event is automatically triggered, allowing your flows to respond to the completion of the signing process. ## Important Notes - The signed document maintains a connection to the original record through the RecordId field. - File naming convention automatically appends "_signed" to distinguish the final document from the original. - While using Docu Sign, the file received after signing will always be a pdf, even if the file sent for signing has other file type. --- # Document Split https://help.cloudfiles.io/salesforce/document-split # Document Split This event is published once a merged file is split into multiple files intelligently/automatically by CloudFiles Document AI using the Split Document using AI flow action. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published once a merged file (a PDF file created by merging different files into one ) is split into multiple files intelligently/automatically by CloudFiles Document AI using Split Document using AI flow action. This event is particularly useful in scenarios where the splitting of Resources needs to initiate downstream processes or workflows. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. ![](https://media.help.cloudfiles.io/evt-document-split-sf/01.png) Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ## Event Type For Decision Filter Please use document-split as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details Refer to the image below for a list of outputs ![](https://media.help.cloudfiles.io/evt-document-split-sf/02.png) - Files - A collection of Resource containing details of the Files generated by the Split Document using AI action. - If the Generated Files' Destination was specified to be Salesforce Files, then each collection file's fields shall be as follows: - Library will be salesforce - Id will be ContentDocumentId of the Salesforce File - If the Generated Files' Destination was specified to be an External Storage Location, then the file's metadata is output as a Resource. - RecordId- The Context value specified as the input for the corresponding Split Document using AI action, which helps identify the event’s source or anyother intended details. --- # Error Event https://help.cloudfiles.io/salesforce/error-event # Error Event The event is triggered when a CloudFiles flow action fails, giving users real-time insights into the failed action. This event provides specific details about which file or resource caused the failure, empowering users to set up custom error handling workflows. > Kind: Event · Updated: Jul 13, 2026 ## Overview The event is triggered when a CloudFiles flow action fails, giving users real-time insights into the failed action. This event provides specific details about which file or resource caused the failure, empowering users to set up custom error handling workflows. The Error Event is currently configured for the Copy Salesforce File action, Process Document using AI action, Set Resource Property action, and the Document Mapper action. It is also raised when DocuSign signing fails for a generated document, regardless of which document-generation action produced it. With this feature, users can automate how they handle errors. For example, when a document processing action fails, you’ll receive details about the file that didn’t process correctly. From there, you can create flows to automatically track failed files or move them to a designated folder for manual intervention. ## How to use this Event? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-error-event-sf/01.png) ![](https://media.help.cloudfiles.io/evt-error-event-sf/02.png) ## Event Type For Decision Filter Use error-event as the type filter when setting up a decision element in Flow Builder. This ensures that any error caused by CloudFiles actions, such as a failed document process, is captured and ready for handling. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Error Event sub-type with useful information including error event type, error reason etc for further use. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-error-event-sf/03.png) - DocumentProcessedError - This contains corresponding details of the document for which Process Document using AI flow action failed. It includes file and context of the document. - SalesforceFileCopiedError - This contains corresponding details of the document for which Copy Salesforce File flow action failed. It includes the following details- - Destination - The resource of the destination to which files were supposed to be copied. - ContentVersionId - Content version Id of the file that was supposed to be copied. - Record Id - Record Id of the record to which the file belongs. - ResourceUpdateError - This contains corresponding details of the resource for which Set Resource Property flow action failed. It includes the following details- - Resource - The Resource file or folder that failed to update its metadata. - Payload - The JSON payload string showing which field you attempted to update and the value. (e.g., "{"name":"value"}"). - DocumentMapperRunError - This contains details of the file and context for which the Document Mapper operation failed. It includes information such as - - File Id - The (internal or external) file that was processed to extract information from during the mapping. - Config Id - The Document Mapper configuration that was used in the run. - Record Id - The Record Id if the document mapper was run in "update" mode. - ErrorEventType - The specific nature of the error. It is the corresponding platform event of the flow action which is failed (e.g., salesforce-file-copied, document-processed, resource-updated, Document Mapper Run, document-signed). - ErrorReason - An error prompt which is a description of an error (e.g., "something went wrong"). - DatasetCreatedError - This contains the details od the resources, context for which the Create Dataset failed. It includes information such as - - Resource - The Resource file that failed to create the dataset. - Name - Name of the datset for which the action failed. - DocumentSignedError - This contains details of a failure in the DocuSign document-signing process. It can be raised for any document sent for signature, regardless of which document-generation action produced it. One error event is raised per document. It includes the following details- - Stage - The point at which signing failed, one of GENERATION_INCOMPLETE, ENVELOPE_SEND_FAILED, DOCUSIGN_DISCONNECTED, DELIVERY_FAILED, DECLINED or VOIDED. - EnvelopeId - The DocuSign envelope Id. - GroupId - The envelope group Id, identifying documents sent together in a single combined envelope. - RecordId - The Record Id on which the document was generated. - TemplateId - The CloudFiles Template Id of the document being signed. - FileName - The name of the document involved in the failure. - Context - Additional context for the failure. ## Use Cases Here are some practical use cases for leveraging the Error Event to handle errors in CloudFiles workflows: - Track Failed AI Document Processing - Automatically detect when a document fails to process using AI and move it to a specific folder for manual review and reprocessing. - Automate Failed File Handling - Set up flows to track files that failed to copy, triggering automatic retries or alerts to team members for immediate action. - Custom Error Reporting - Create a flow that tracks all failed actions and generates a report on error types, resources, and associated records to streamline troubleshooting --- # File Received https://help.cloudfiles.io/salesforce/file-received # File Received The File Received event is published when a file is uploaded using the File Request module in a CloudFiles Dataroom. > Kind: Event · Updated: Jul 4, 2026 ## Overview The File Received event is published when a file is uploaded using the File Request module in a CloudFiles Dataroom. This module allows users to configure file requests and specify a destination folder for uploaded files. The File Request module can be created and added to a Dataroom either manually from your CloudFiles account in the CloudFiles Web App or through flow automations using the Create File Request action. Once configured, the Dataroom can be shared via a CloudFiles-generated sharing link, enabling external users to upload files directly into the specified destination. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-file-received-sf/01.png) ## Event Type For Decision Filter Please use file-received as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the File Received sub-type with useful information including file request details, received file's details and uploader details and much more. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-file-received-sf/02.png) - uploadedAt - The date and time when the file was uploaded via the File Request module - destinationDriveId - The Drive Id of the destination external storage folder where the uploaded file is stored - destinationLibrary - The library of the destination folder (e.g., sharepoint, google ) - destinationResourceId - The unique Resource Id of the received file in the destination folder. - fileRequestId - The unique CloudFiles identifier for the File Request module - fileRequestName - The name given to the File Request module during configuration - linkId - The unique Id of the link from where the file was uploaded. - linkUrl - The url/link from where the file was uploaded. - name - The name of the uploaded file - uploaderEmail - The email address of the uploader (only captured if email authentication is mandatory in the Dataroom security settings) --- # File Replaced https://help.cloudfiles.io/salesforce/file-replaced # File Replaced This event is published when an External Storage File is replaced using CloudFiles LWC from within Salesforce. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published when an External Storage File is replaced using CloudFiles LWC from within Salesforce. For example, replacing a SharePoint's file with another file uploaded from local PC. ![](https://media.help.cloudfiles.io/evt-file-replaced-sf/01.png) ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. ![](https://media.help.cloudfiles.io/evt-file-replaced-sf/02.png) Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ## Event Type For Decision Filter Please use file-replaced as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Replaced File Details sub-type with useful information including replaced file details, Record Id and User Id for further use. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-file-replaced-sf/03.png) - DriveId - The Drive Id of the replaced File - Id- The Resource Id of the replaced File. (When a file is replaced, the Resource Id doesn't change) - Library- The External Storage Library (Ex sharepoint) - Name- The Name of the replaced File (Old File's Name) - ParentFolderId - The Resource Id of the replaced File's ParentFolder - RecordId - The Salesforce Record Id associated with the LWC that initiated the the update. - UserId - The Salesforce User Id of the user who performed the update. --- # File Uploaded https://help.cloudfiles.io/salesforce/file-uploaded # File Uploaded Learn about the CloudFiles widget event in Salesforce, triggered when a file is uploaded on a record page. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published when a file is uploaded into External Storage through the CloudFiles widget from Salesforce. > This event should not be confused with Salesforce File Attached which is published when a file is uploaded to Salesforce native storage, through "Files" or "Notes & Attachments" section. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-file-uploaded-sf/01.png) ## Event Type For Decision Filter Please use file-uploaded as the type filter when selecting this event in the decision element in flow builder ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Uploaded File Details sub-type with useful information including file name, drive id, record id etc for further use. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-file-uploaded-sf/02.png) - Id - External Id of the file - DriveId - Id of the drive in case of SharePoint or Google Drive storage - Library - One of sharepoint, google, onedrive, box, dropbox, cloudfiles - RecordId - Id of the Salesforce record where the file is uploaded - Name - Name of the uploaded file ## Use Cases - If the uploaded file name contains the word "Proposal" in it, update the opportunity stage to "Value proposition". - When a file is uploaded through CloudFiles widget, update the count of uploads in a property. - When a resume is uploaded, use document AI to extract student info and auto-generate an interview scoring sheet using templates created in google docs. --- # File Viewed https://help.cloudfiles.io/salesforce/file-viewed # File Viewed This event is published when a file is viewed through the sharing link generated by CloudFiles in Salesforce. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published when a file is viewed through the sharing link generated by CloudFiles in Salesforce. The file sharing link can be obtained through CloudFiles widget in salesforce. The file-viewed event type can be used to filter this event. The corresponding Get Event Details flow action returns the File Viewed sub-type with useful information including file resource, record id, email, time spent, link and download status for further use. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-file-viewed-sf/01.png) ## Event Type For Decision Filter Please use file-viewed as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the File Viewed sub-type with useful information including file resource, record id, email, time spent, link and download status for further use. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-file-viewed-sf/02.png) - Link - Link contains "url" and "id" field in the form of a list. - Resource - A Resource consists of drive id, name, id, path, library and the type of file that is being viewed. - downloaded - It is a boolean to indicate whether the file in view is downloaded through the link or not. - TimeSpent - Amount of time (in seconds) spent on the file which has been viewed. - Email - Email through which the file is viewed. - RecordId - Record Id of the record to which file belongs. --- # Folder Created https://help.cloudfiles.io/salesforce/folder-created # Folder Created The Folder Created Event is published when a Create Folder (Async) flow action successfully creates a folder in the specified external storage. > Kind: Event · Updated: Jul 4, 2026 ## Overview The Folder Created Event is published when a Create Folder (Async) flow action execution successfully creates a folder in the specified external storage. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-folder-created-sf/01.png) ## Event Type For Decision Filter Please use folder-created as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Created Folder Details sub-type with useful information including Created External Storage Folder's Metadata Details as per the input paramters in the corresponding Create Folder (Async) flow action. ![](https://media.help.cloudfiles.io/evt-folder-created-sf/02.png) - id- The unique Resource Id of the folder in external storage. - Rest all fields are NULL --- # Resource Attached https://help.cloudfiles.io/salesforce/resource-attached # Resource Attached The Resource Attached Event triggers whenever a file or folder in external storage is attached to a Salesforce record via manual connection or the Create Attachment flow action. > Kind: Event · Updated: Jul 4, 2026 ## Overview The Resource Attached Event is triggered whenever a file or folder in external storage is attached to a Salesforce record via: - Manual Connection: - When a user manually attaches a resource through the CloudFiles LWC on a Salesforce record page. - Create Attachment Action: - Upon successful execution of the Create Attachment flow action. This event enables seamless automation for scenarios requiring further actions based on resource attachment, such as notifications, logging, or updates. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-resource-attached-sf/01.png) ## Event Type For Decision Filter In Flow Builder, use resource-attached as the event type filter in decision element. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Resource Attached sub-type with useful information including attached Resource's Metadata details, Salesforce Object type and Salesforce Record Id for further use. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-resource-attached-sf/02.png) - Resource - A lookup Field of type Resource ( cldfs_Resource ) which shall contain the connected/attached Resource's metadata details. - driveId - The external storage Drive Id - id- The unique resource Id - library- The External Storage Library (Ex sharepoint) - name- The Name of the File/Folder - path- The Storage Location Path of the File/Folder (Null if the storage is Google Drive) - type- file or folder based on the Resource Type. - Object Type - The Salesforce object's API name (e.g., Account, Opportunity) where the resource is attached. - Record Id - The Salesforce Record Id associated with the attachment. ## Use Cases In this section we present some use-cases for this platform event. - Create a list of all manual attachments done by team members on various records to get a report of content consumption against record types. - Read the files of the attached resource and determine if certain file types have been uploaded to advance opportunity status. - Copy the attached record files from Salesforce storage to external storage for migration or archival, and optionally delete them from salesforce. --- # Resource Cloned https://help.cloudfiles.io/salesforce/resource-cloned # Resource Cloned The Resource Cloned Event is published for every successful external resource cloning of resources input in a Copy Resources flow action. This event is particularly useful in scenarios where the cloning of Resources needs to initiate downstream processes or workflows. > Kind: Event · Updated: Jul 4, 2026 ## Overview The Resource Cloned Event is published for every successful external resource cloning of resources input in a Copy Resources flow action. This event is particularly useful in scenarios where the cloning of Resources needs to initiate downstream processes or workflows. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ## Event Type For Decision Filter Please use resource-cloned as the type filter when selecting this event in the decision element in flow builder. ![](https://media.help.cloudfiles.io/evt-resource-cloned-sf/01.png) ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Resource Cloned sub-type with useful information including the input External Storage Resource, created/cloned External Storage Resource metadata details and Record Id (i.e. Input Record Id Text string from the corresponding Copy Resources action). Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-resource-cloned-sf/02.png) - InputResource - A lookup Field of type Resource ( cldfs_Resource ) which shall contain the corresponding Copy Resources input external Resource's metadata details. - driveId - The external storage drive Id - id- The unique resource Id - library- The External Storage Library (Ex sharepoint) - name- The Name of the File/Folder - path- The Storage Location Path of the File/Folder (Null if the storage is Google Drive) - type- file or folder based on the Resource Type. - Resource - A lookup Field of type Resource ( cldfs_Resource ) which shall contain the created/ cloned Resource's metadata details. - driveId - The external storage drive Id - id- The unique resource Id - library- The External Storage Library (Ex sharepoint) - name- The Name of the File/Folder - path- The Storage Location Path of the File/Folder (Null if the storage is Google Drive) - type- file or folder based on the Resource Type. - RecordId - The Text string input in the corresponding Copy Resources action. (e.g., the Record Id or any other identifier provided during the action). --- # Resource Deleted https://help.cloudfiles.io/salesforce/resource-deleted # Resource Deleted The Resource Deleted event is triggered whenever a resource (file or folder) is deleted using the CloudFiles LWC. > Kind: Event · Updated: Jul 4, 2026 ## Overview The Resource Deleted event is triggered whenever a resource (file or folder) is deleted using the CloudFiles LWC (Lightning Web Component). ![](https://media.help.cloudfiles.io/evt-resource-deleted-sf/01.png) This event is particularly useful in scenarios where the deleting of Resources needs to initiate downstream processes or workflows. ## How To Use This Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. ![](https://media.help.cloudfiles.io/evt-resource-deleted-sf/02.png) Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ## Event Type For Decision Filter In Flow Builder, use the resource-deleted event type as a filter condition in decision elements. This ensures the Flow is triggered only for deleted resource events. ![](https://media.help.cloudfiles.io/evt-resource-deleted-sf/03.png) ## Output Fields From Get Event Details The corresponding Get Event Details flow action extracts relevant information about the Deleted Resource and the Context of the deletion. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-resource-deleted-sf/04.png) - Resource - A lookup Field of type Resource ( cldfs_Resource ) which shall contain the deleted Resource's metadata details. - driveId - The external storage drive Id - id- The ResourceId or unique identifier of the deleted resource. - library- The External Storage Library (Ex sharepoint) - name- The name of the deleted file or folder. - path- The Storage Location Path of the File/Folder (Null if the storage is Google Drive) - type- file or folder based on the deleted Resource Type. - RecordId - The Salesforce Record Id associated with the LWC that initiated the deletion. - UserId - The Salesforce User Id of the user who performed the deletion. --- # Resource Detached https://help.cloudfiles.io/salesforce/resource-detached # Resource Detached The Resource Detached event fires whenever a file or folder in external storage is disconnected from a Salesforce record, enabling automation like audit logging, cleanup, notifications, and cascade updates. > Kind: Event · Updated: Jul 4, 2026 ## Overview The Resource Detached event is triggered whenever a file or folder in external storage is disconnected from a Salesforce record. This event fires in the following scenarios: - When a user manually disconnects a resource through the CloudFiles LWC widget on a Salesforce record page - Upon successful execution of the Delete Attachment flow action This event enables seamless automation for scenarios requiring actions based on resource disconnection, such as audit logging, cleanup operations, archival notifications, or cascade updates to related records. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. > **Note** — By default, this event is not published. You must enable this in the CloudFiles app -> Document Management -> Settings ## Event Type For Decision Filter In Flow Builder, use resource-detached as the event type filter in decision element. ![](https://media.help.cloudfiles.io/evt-resource-detached-sf/01.png) The corresponding Get Event Details flow action returns the Resource Detached sub-type with useful information including attached Resource's Metadata details, Salesforce Object type and Salesforce Record Id for further use. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-resource-detached-sf/02.png) - Resource - A lookup Field of type Resource ( cldfs_Resource ) which shall contain the connected/attached Resource's metadata details. - driveId - The external storage Drive Id - id- The unique resource Id - library- The External Storage Library (Ex sharepoint) - name- The Name of the File/Folder - path- The Storage Location Path of the File/Folder (Null if the storage is Google Drive) - type- file or folder based on the Resource Type. - Object Type - The Salesforce object's API name (e.g., Account, Opportunity) where the resource is detatched from. - Record Id - The Salesforce Record Id associated with the attachment. ## Use Cases In this section we present some use cases for this event: - Maintain audit trails of all resource disconnections across your organization to track when and why attachments are removed from critical records - Trigger cleanup workflows to optionally delete or archive the detached files from external storage when they're no longer needed in Salesforce - Send notifications to stakeholders when important documents are disconnected from opportunity or contract records - Update record status or custom fields when required attachments are removed, ensuring data integrity and process compliance - Create archival records in a custom object to maintain historical references to previously attached resources for compliance or reporting purposes --- # Resource Moved https://help.cloudfiles.io/salesforce/resource-moved # Resource Moved The Resource Moved event is published whenever a file or folder is relocated within external storage using CloudFiles. > Kind: Event · Updated: Jul 4, 2026 ## Overview The Resource Moved event is published whenever a file or folder is relocated within external storage using CloudFiles. This can occur either when a user moves a resource through the CloudFiles Lightning Widget component in Salesforce or when a Move Resource flow action runs successfully. The event is useful for triggering downstream processes—such as notifications, logging, or automated updates—whenever a document is reorganized into a new folder. ## How to use this Event? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. > **Note** — By default, this event is not published. You must enable this in Document Management Settings ## Event Type For Decision Filter In Flow Builder, use resource-moved as the event type filter in decision element. ![](https://media.help.cloudfiles.io/evt-resource-moved-sf/01.png) ## Output Fields From Get Event Details When a Resource Moved event is intercepted and you call Get Event Details, it returns a Resource Moved event detail record with information about the moved file/folder and its new location. Key output fields (parameters) in this event detail include the resource’s identifiers and destination information. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-resource-moved-sf/02.png) The important fields are described below: - Library- The external storage library (for example, sharepoint, google, s3, azure, onedrive, dropbox, box or cloudfiles) where the resource resides. - DriveID - The external storage Drive Id - Id - The unique identifier of the resource in the external storage (the file or folder ID) - SourceParentFolderId - The parent folder ID under which the resource was originally present beore moving - Type - The type of resource that was moved (will be file or folder depending on the resource) - DestinationId - The folder Id under which the resource is moved (essentially the resource's new parent folder Id) --- # Resource Updated https://help.cloudfiles.io/salesforce/resource-updated # Resource Updated Explains the resource-updated CloudFiles platform event fired when a Resource's metadata Property values are changed from Salesforce, including how to use it, the decision filter type, and the output fields returned by Get Event Details. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published when the metadata Property values of a Resource (file or folder) is updated or changed from Salesforce using CloudFiles. For example, updating SharePoint Resource's Metadata column value through CloudFiles widget. ![](https://media.help.cloudfiles.io/evt-resource-updated-sf/01.png) ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-resource-updated-sf/02.png) ## Event Type For Decision Filter Please use resource-updated as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Updated Resource Details sub-type with useful information including file resource, record id and user id for further use. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-resource-updated-sf/03.png) - Resource - A lookup Field of type Resource ( cldfs_Resource ) which shall contain the corresponding updated external Resource's metadata details. - UpdatedFields - A text collection of all the updated/changed Property API Names - RecordId - The Salesforce Record Id associated with the LWC that initiated the update. - UserId - The Salesforce User Id of the user who performed the update. - driveId - The external storage Drive Id - id- The updated Resource's unique resource Id - library- The External Storage Library (Ex: sharepoint) - name- The Name of the File/Folder - path- The Storage Location Path of the File/Folder (Null if the storage is Google Drive) - type- file or folder based on the Resource Type. ## Use Cases In this section we present some use-cases for this platform event. - Update opportunity status when a SharePoint upload is marked as proposal. - Create a claim object when a folder with more than five files is marked as Complete. - Run AI to extract information when an uploaded file is marked as a resume. --- # Salesforce File Attached https://help.cloudfiles.io/salesforce/salesforce-file-attached # Salesforce File Attached Learn about the event triggered when a file is uploaded to Salesforce native storage, its distinction from the File Uploaded event, and its fields. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published when a file is uploaded to Salesforce (as a ContentDocument)and linked to a Salesforce Object Record (as a ContentDocumentLink), through "Files" or "Notes & Attachments" section. > This event is not published when a file is uploaded into Salesforce as the old standard Attachment format. > This event should not be confused with File Uploaded, which is published when a file is uploaded to external storage through the CloudFiles widget. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-salesforce-file-attached-sf/01.png) ## Event Type For Decision Filter Please use salesforce-file-attached as the type filter when selecting this event in the decision element in flow builder. ## Output Fields From Get Event Details The corresponding Get Event Details flow action returns the Salesforce Files Details sub-type with useful information including files, content document Ids, parent Id and parent type. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-salesforce-file-attached-sf/02.png) - Parent Id - Id of the Salesforce record where the file is uploaded - Parent Type - Type of the Salesforce record where the file is uploaded. Example - Account - ContentDocumentIds - A list of ContentDocumentId. When multiple files are uploaded together, only one instance of this event is published holding all the uploaded file ids as ContentDocumentIds - Files - A list of Salesforce File objects ## Use Cases Here are a few use-cases for this platform event. - Copy the salesforce file auto-attached by external tools such as document generation apps to external storage folders & sub-folders as soon as they are uploaded to save on Salesforce storage and provide access to entire team. - If people are manually uploading files and sometimes mistakenly upload them into the Salesforce Files Component, copy them to external storage so that the team members not in Salesforce also have the access. - Transfer Salesforce files to google drive for easier editing using the native google editors. This can also be extended to moving files into SharePoint, OneDrive for easier editing using Microsoft tools such as Word, Excel, Powerpoint etc... --- # Salesforce File Copied https://help.cloudfiles.io/salesforce/salesforce-file-copied # Salesforce File Copied Learn about the "Copy Salesforce Files" action and how it triggers the "salesforce-file-copied" event. > Kind: Event · Updated: Jul 4, 2026 ## Overview This event is published for every Salesforce File that is copied to external storage by using the Copy Salesforce Files flow action. This event works for all CloudFiles supported storages. > This event only triggers when the Copy Salesforce Files action is used to initiate the copy of the file to the external storage. ## How to use this Event ? To use CloudFiles Events, you must first setup your flow as shown in the Intercepting CloudFiles Events article. This article will introduce you to the concepts of the event type as well as event details that are returned by the Get Event Details flow action. Once you are familiar with these, you will understand how to interpret & use these as illustrated in the sections below. ![](https://media.help.cloudfiles.io/evt-salesforce-file-copied-sf/01.png) ## Event Type for Decision Filter Please use salesforce-file-copied as the type filter when selecting this event in the decision element in flow builder. ## Output Fields from Get Event Details The Get Event Details provides the Copied Salesforce File Details sub-type to output the information for this event. It provides useful information including source file id, destination file id, record id etc... for further use. Refer to the image below for a list of outputs and descriptions of the parameters returned in this sub-type. ![](https://media.help.cloudfiles.io/evt-salesforce-file-copied-sf/02.png) - Resource - A lookup Field of type Resource ( cldfs_Resource )which shall contain the External Storage Resource's metadata details. - driveId - The external storage drive Id - id- The unique resource Id - library- The External Storage Library (Ex sharepoint) - name- The Name of the File/Folder - path- The Storage Location Path of the File/Folder (Null if the storage is Google Drive) - type- file or folder based on the Resource Type. - ContentVersionId - ContentVersionId of the Salesforce file (ContentDocument) that got copied. - ParentId - The Text string input in the corresponding Copy Salesforce Files action. (e.g., the Record Id or any other identifier provided during the action). ## Use Cases In this section we present some use-cases for this platform event. - Mark the Salesforce file as copied after it has been copied into SharePoint. - Delete a file from Salesforce after it has been successfully copied into SharePoint. - Update the initiating record fields to mark it for scheduled deletion of stored files --- # Capturing SharePoint Events https://help.cloudfiles.io/salesforce/capturing-sharepoint-events # Capturing SharePoint Events Explains how CloudFiles captures SharePoint events in real time via Power Automate and uses them to trigger Salesforce automations. > Kind: Event · Updated: Jul 4, 2026 ## Overview When using CloudFiles with Salesforce, you can capture important SharePoint events in real-time and use them to trigger Salesforce automations. In particular, CloudFiles supports webhooks that allow events like file uploads or file updates in SharePoint to trigger corresponding CloudFiles Events in Salesforce. This is useful if you want Salesforce to react instantly to changes happening directly in SharePoint (even if those changes are not made via the CloudFiles widget in Salesforce). > **Note** — The setup to capture SharePoint events needs a Power Automate premium subscription. ## Supported Events Currently, the following SharePoint event types that can be captured and sent to Salesforce via CloudFiles: - File Uploaded Event - Triggers when a new file is added to a SharePoint document library. This event sends details of the newly uploaded file to Salesforce, so you can, for example, update records or kick off processes as soon as a file is uploaded. - Resource Updated Event - Triggers when metadata properties of a SharePoint file or folder are updated. For instance, if a file’s metadata column (e.g. a "Status" or "Tags" field) is changed, an event can be sent to Salesforce. This allows Salesforce to respond (e.g. update a status field or run a flow) when a file’s properties are modified in SharePoint. --- # File Uploaded in SharePoint https://help.cloudfiles.io/salesforce/file-uploaded-in-sharepoint # File Uploaded in SharePoint CloudFiles supports a webhook that triggers a file-uploaded event in Salesforce whenever a file is uploaded to a connected SharePoint library. > Kind: Event · Updated: Jul 4, 2026 ## Overview CloudFiles supports a webhook that allows you to trigger file-uploaded event in Salesforce whenever a file is uploaded to a connected SharePoint library. This is useful when you want Salesforce automations to trigger instantly to new documents which are uploaded directly to SharePoint (and not via the CloudFiles LWC on a record page). > **Note** — This setup is implemented using the Power Automate premium subscription ## Setting up the Power Automate Flow The flow will consist of 3 main steps and looks like the following - ![](https://media.help.cloudfiles.io/evt-file-uploaded-in-sharepoint-sf/01.png) ## Step 1 - Trigger on File Creation Start with the “When a file is created (properties only)” SharePoint trigger. Configure this to watch the specific site and document library where new files will be uploaded. This step ensures the flow starts running the moment a file is added to that location. ![](https://media.help.cloudfiles.io/evt-file-uploaded-in-sharepoint-sf/02.png) ## Step 2 – Retrieve File Properties Next, add the “Get file properties” SharePoint action. In the Site Address and Library Name, select the same site and document library you are monitoring in the previous step. ![](https://media.help.cloudfiles.io/evt-file-uploaded-in-sharepoint-sf/03.png) In the Id field, pass the ID value from the trigger step. This action fetches the metadata you will need later. You can use the lightning icon that appears on the Id* field to fetch data from the previous step and search for "ID". ![](https://media.help.cloudfiles.io/evt-file-uploaded-in-sharepoint-sf/04.png) ## Step 3 – Send File Details to the CloudFiles Webhook Add an HTTP action and configure it to send the collected file details to the CloudFiles webhook endpoint. Set the Method to POST, and in the URI field, paste the production webhook URL for SharePoint (https://api.cloudfiles.io/webhooks/library-event?library=sharepoint) ![](https://media.help.cloudfiles.io/evt-file-uploaded-in-sharepoint-sf/05.png) In the Headers, include a x-webhook-secret key with the secret value you retrieved from Salesforce. You can go to CloudFiles app -> Settings -> API Keys and copy the "Webhook Secret Key" to retrieve this key. ![](https://media.help.cloudfiles.io/evt-file-uploaded-in-sharepoint-sf/06.png) In the Body, send a JSON payload containing: - The event name ("FILE_UPLOADED") - The Drive ID from the “Get file properties” output - The Drive Item ID from the same output - The Full Path of the file You can use the lightning icon to fetch the parameters directly or alternatively use the following JSON function - { "eventName": "FILE_UPLOADED", "driveId": "@{triggerBody()?['{DriveId}']}", "fileId": "@{triggerBody()?['{DriveItemId}']}", "filePath": "@{triggerBody()?['{FullPath}']}" } This ensures CloudFiles knows exactly which file in SharePoint triggered the event and can process it accordingly inside Salesforce. ## Testing the Flow After saving and enabling the flow, upload a file to the configured SharePoint library. In Power Automate, check the run history to confirm that all steps completed successfully. Then, verify in Salesforce that the file-uploaded event was triggered. You can check the list of most recent file-uploaded CloudFiles Events recorded in salesforce with the help of the following SOQL query - SELECT Fields(All) from cldfs__CloudFilesEvent__c where cldfs__Type__c = 'file-uploaded' order by CreatedDate DESC LIMIT 200 If the event isn’t recorded, double-check the posted file details (Drive ID, Item ID, Full Path) and ensure the user connected in Power Automate has access to the file. Once you confirm that the event is getting successfully recorded in Salesforce, you can intercept that event and build automations on top of it. --- # Resource Updated in SharePoint https://help.cloudfiles.io/salesforce/resource-updated-in-sharepoint # Resource Updated in SharePoint CloudFiles supports a webhook that allows you to trigger a resource-updated event in Salesforce whenever metadata or properties of a file are changed directly in a connected SharePoint library. > Kind: Event · Updated: Jul 4, 2026 ## Overview CloudFiles supports a webhook that allows you to trigger a resource-updated event in Salesforce whenever metadata or properties of a file are changed directly in a connected SharePoint library. This is useful when you want Salesforce automations to respond to file updates made in SharePoint (for example, when a column like “Tags” is updated), not just when actions are taken via the CloudFiles Lightning component. > **Note** — This setup is implemented using the Power Automate premium subscription ## Setting up the Power Automate Flow The flow will consist of 3 main steps and looks like the following - ![](https://media.help.cloudfiles.io/evt-resource-updated-in-sharepoint-sf/01.png) ## Step 1 – Trigger on File Modification Start with the “When a file is created or modified (properties only)” SharePoint trigger. Configure this trigger to monitor the specific Site Address and Document Library where file metadata changes will happen. You can also add a specific parent folder under which changes need to be monitored in the advanced parameters. ![](https://media.help.cloudfiles.io/evt-resource-updated-in-sharepoint-sf/02.png) ## Step 2 – Retrieve File Properties Add the “Get file properties” SharePoint action. Set the Site Address and Library Name to the same site and library used in the trigger in previous step. ![](https://media.help.cloudfiles.io/evt-resource-updated-in-sharepoint-sf/03.png) In the Id field, pass the ID value from the trigger step. This action fetches the metadata you will need later. You can use the lightning icon that appears on the Id* field to fetch data from the previous step and search for "ID". ![](https://media.help.cloudfiles.io/evt-resource-updated-in-sharepoint-sf/04.png) ## Step 3 – Send Updated Details to CloudFiles Webhook Add an HTTP action and configure it to send the collected file details to the CloudFiles webhook endpoint. Set the Method to POST, and in the URI field, paste the production webhook URL for SharePoint (https://api.cloudfiles.io/webhooks/library-event?library=sharepoint) ![](https://media.help.cloudfiles.io/evt-resource-updated-in-sharepoint-sf/05.png) In the Headers, include a x-webhook-secret key with the secret value you retrieved from Salesforce. You can go to CloudFiles app -> Settings -> API Keys and copy the "Webhook Secret Key" to retrieve this key. ![](https://media.help.cloudfiles.io/evt-resource-updated-in-sharepoint-sf/06.png) In the Body, send a JSON payload containing: - The event name ("RESOURCE_UPDATED") - The Drive ID from the “Get file properties” output - The Drive Item ID from the same output - The Full Path of the file - The list of Updated Fields (as a list of strings) You can use the lightning icon to fetch the parameters directly or alternatively use the following JSON function - ```json { "eventName": "RESOURCE_UPDATED", "driveId": "@{triggerBody()?['{DriveId}']}", "fileId": "@{triggerBody()?['{DriveItemId}']}", "filePath": "@{triggerBody()?['{FullPath}']}", "updatedFields": [] } ``` It is optional to send the names of actual columns that are being changed in the updatedFields array. It is recommended that the follow up salesforce flow that gets triggered on this event can use the Get Resource Property flow action to retrieve the metadata value of the specific column being monitored. In case you still wish to send a specific list of columns, you can add that as a list of strings - e.g. "updatedFields": ["Tags", "Status"] ## Testing the Flow After the flow is saved and enabled: - Modify metadata (for example, update the “Tags” field) on a file in the monitored SharePoint document library. - In Power Automate, check the flow’s run history. Confirm that the trigger fired, properties were retrieved, and the HTTP request succeeded. - In Salesforce, look for a new resource-updated event. You can check the list of most recent resource-updated CloudFiles Events recorded in salesforce with the help of the following SOQL query - ```sql SELECT Fields(All) from cldfs__CloudFilesEvent__c where cldfs__Type__c = 'resource-updated' order by CreatedDate DESC LIMIT 200 ``` If the event isn’t recorded, double-check the posted file details (Drive ID, Item ID, Full Path) and ensure the user connected in Power Automate has access to the file. Once you confirm that the event is getting successfully recorded in Salesforce, you can intercept that event and build automations on top of it. --- ## Apex Reference --- # Add To Dataroom https://help.cloudfiles.io/salesforce/add-to-dataroom # Add To Dataroom Add content to a dataroom from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void addToDataroom( List childrenInputs, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | childrenInputs | List<Types.AddDataroomChildrenInput> | required | List of Types.AddDataroomChildrenInput entries describing the children to add to the dataroom. | | runAs | String | required | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type void ## Example ```apex List children = new List { new cldfs.Types.DataroomChild('67a09ad4e249057a78212c17', 'file', 'sharepoint', 'b!nJBtPq_z5UeJtFrj_f24XEQqlPUD8vtFsg7GBcrXJepiUn9bkb_7QbDPtqHVD-cP') }; ListchildrenInputs = new List { new cldfs.Types.AddDataroomChildrenInput('67a09ad4e249057a78212c16', children) }; cldfs.Client.addToDataroom(childrenInputs, 'integrationUser'); ``` > **Testing** — Use ClientFactory with default mock values to get coverage without callouts. See How to get test coverage of code that uses Client methods. --- # Assign User Licenses (Apex Method) https://help.cloudfiles.io/salesforce/aLGx-assign-user-licenses # Assign User Licenses Assign CloudFiles user licenses from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List assignUserLicenses( List inputs, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.UpdateLicensesInput> | required | List of Types.UpdateLicensesInput, one entry per license assignment. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the CloudFiles integration user, supply integrationUser. | ## Return Type List inputs = new List{ new Cldfs.Types.UpdateLicensesInput(new List{'005dL000008FbqgQAC'}, 'document-management') }; String runAs = 'integerationUser'; List output = Cldfs.Client.assignUserLicenses(inputs, runAs); ``` --- # Create Attachments https://help.cloudfiles.io/salesforce/create-attachments # Create Attachments Create one or more attachments from Apex, linking files or folders to Salesforce records. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List createAttachments( List attachmentInputs, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | attachmentInputs | List<Types.CreateAttachmentInput> | required | One entry per attachment. See Types.CreateAttachmentInput. | | library | String | required | Type of library. Example — sharepoint. You can get this value from the Content Library. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type List inputs = new List{ new cldfs.Types.CreateAttachmentInput(, 'folder', , 'b!ZfA15HRS1Uy9pH3Vw5tFjAHfP1lRYlZAvDwLnHYYq8sa-L6ejXB-TJbMYUxi1QfL') }; List attachments = cldfs.Client.createAttachments( inputs, 'sharepoint', 'integrationUser' ); ``` --- # Create Content Version Batch https://help.cloudfiles.io/salesforce/create-content-version-batch # Create Content Version Batch Create content versions for a batch of files in Salesforce from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void createContentVersionBatch( List inputs, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.CreateContentVersionBatchPayload> | required | List of Types.CreateContentVersionBatchPayload — one entry per file batch payload. | | runAs | String | optional | Email ID of the user on whose behalf the function should run. Provide integrationUser to run as the automation user. For CloudFiles internal use only — it does not affect the content version or content document created by this action in Salesforce. | ## Return Type void ## Example ```apex cldfs.CreateContentVersionFlowInput file = new cldfs.CreateContentVersionFlowInput(); file.library = 'sharepoint'; //Library file.driveId = 'b!nJBtPq_z5UeJtFrj_f24XEQqlPUD8vtFsg7GBcrXJepiUn9bkb_7QbDPtqHVD-cP'; //driveId file.id = '01KEHAKUUSU3E5OUXBBJGLYTD3IZU4BCRV'; //fileId List files = new List(); files.add(file); String context = '{"recordId":"701dL00000WonvTQAR"}'; List inputs = new List{ new cldfs.Types.CreateContentVersionBatchPayload( files, context ) }; cldfs.Client.createContentVersionBatch(inputs, 'integrationUser'); ``` > **Testing** — Use ClientFactory with default mock values to get coverage without callouts. See How to get test coverage of code that uses Client methods. --- # Create Datarooms https://help.cloudfiles.io/salesforce/create-datarooms # Create Datarooms Create one or more datarooms from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List createDatarooms( List dataroomInputs, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | dataroomInputs | List<Types.CreateDataroomInput> | required | List of Types.CreateDataroomInput; one entry per dataroom to create. | | runAs | String | required | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type List dataroomInputs = new List{ new cldfs.Types.CreateDataroomInput('Dataroom - 01', 'Test Dataroom') }; List dataroom = cldfs.Client.createDatarooms(dataroomInputs, 'integrationUser'); ``` --- # Create File Connect Files (Apex Method) https://help.cloudfiles.io/salesforce/create-file-connect-files # Create File Connect Files Programmatically create Salesforce Files Connect objects for externally stored files from Apex. > Kind: Apex method · Updated: 2026-07-01 > **Invocable Apex class** — This is an invocable Apex class, not a Client method. Call it as cldfs.CreateContentDocumentLink.execute(inputs), passing a list of cldfs.CreateContentDocumentLink.FlowInput. ## Signature ```apex global static List execute( List inputs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<CreateContentDocumentLink.FlowInput> | required | One entry per file to link. Each FlowInput carries: externalDataSourceName (External Data Source Name), name (Name), salesforceObjectId (Salesforce Object Id), and fileConnectResourceId (File Connect Resource Id). | ## Return Type List links = cldfs.CreateContentDocumentLink.execute(new list{input}); ``` --- # Create File Requests https://help.cloudfiles.io/salesforce/create-file-requests # Create File Requests Create one or more File Requests from Apex to receive files from customers. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List createFileRequests( List fileRequestInputs, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | fileRequestInputs | List<Types.CreateFileRequestInput> | required | One entry per File Request. See Types.CreateFileRequestInput. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type List fileRequestInputs = new List{ new cldfs.Types.CreateFileRequestInput('File Request -01', 'File Request Test', '10bj6bAjlx9iUfzKXef1skTCXBCLVjaZN', 'google', 'mydrive') }; cldfs.Client.createFileRequests(fileRequestInputs, 'integrationUser'); ``` --- # Create Folders https://help.cloudfiles.io/salesforce/create-folders # Create Folders Create one or more folders from Apex. > Kind: Apex method · Updated: Apr 2, 2026 ## Signature ```apex global static List createFolders( List inputs, String libraryId, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.CreateFolderInput> | required | One entry per folder. See Types.CreateFolderInput. | | libraryId | String | required | Target storage library. Provider rules match the flow action — see Create Folder destination table. | | runAs | String | optional | Username to attribute the operation to; defaults to the integration user. | ## Return Type List inputs = new List{ new Types.CreateFolderInput('Contracts', parentId), new Types.CreateFolderInput('Invoices', parentId) }; List created = Client.createFolders(inputs, 'sharepoint_a8x2', null); System.assertEquals(2, created.size()); ``` > **Testing** — Use ClientFactory with default mock values to get coverage without callouts. See How to get test coverage of code that uses Client methods. --- # Create Folders Async https://help.cloudfiles.io/salesforce/create-folders-async # Create Folders Async Create one or more folders from Apex asynchronously, respecting cloud-storage and Salesforce rate limits. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void createFoldersAsync( List inputs, String libraryId, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.CreateFolderInput> | required | One entry per folder. Provide a request id (random string) with each input to later filter the CloudFiles Event Object for the newly created folder. | | libraryId | String | required | Type of library, e.g. sharepoint. Get this value from the Content Library. | | runAs | String | optional | Email of the user on whose behalf the action runs. Supply integrationUser to run as the automation user. | ## Return Type void — this method runs asynchronously and does not return information about the newly created folders. Filter the CloudFiles Event Object using the request id supplied on each input to retrieve details of the created folder. ## Example ```apex List inputs = new List{ new cldfs.Types.CreateFolderInput('01PLJOYLOAWJBFGBSE7FHK5AKOSIMDIO6H', 'TestFolder', 'b!ZfA15HRS1Uy9pH3Vw5tFjAHfP1lRYlZAvDwLnHYYq8sa-L6ejXB-TJbMYUxi1QfL', 'super-random-string') }; cldfs.Client.createFoldersAsync( inputs, 'sharepoint', 'integrationUser' ); ``` > **When to use** — Prefer createFoldersAsync over createFolders when migrating large amounts of data — it handles both cloud-storage and Salesforce rate limits. --- # Create Links (Apex Method) https://help.cloudfiles.io/salesforce/srEC-create-links # Create Links Create one or more CloudFiles links from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List createLinks( List linkInputs, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | linkInputs | List<Types.CreateLinkInput> | required | List of Types.CreateLinkInput objects, one per link to create. | | library | String | required | Type of library, for example sharepoint. Get this value from your Content Library. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type List createLinkInputs = new List{ new cldfs.Types.CreateLinkInput( '01PLJOYLOAWJBFGBSE7FHK5AKOSIMDIO6H', 'file', '006DO000004p2BzYAI', 'test name', 'b!ZfA15HRS1Uy9pH3Vw5tFjAHfP1lRYlZAvDwLnHYYq8sa-L6ejXB-TJbMYUxi1QfL' ) }; List links = cldfs.Client.createLinks(createLinkInputs,'sharepoint','integrationUser'); ``` --- # Create Microsoft Team (Apex Method) https://help.cloudfiles.io/salesforce/YZuY-create-microsoft-team # Create Microsoft Team Create a Microsoft Team from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List createMicrosoftTeam( List inputs, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.CreateMicrosoftTeamInput> | required | List of Types.CreateMicrosoftTeamInput — one entry per team to create. | | runAs | String | required | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type List input = new List{ new cldfs.Types.CreateMicrosoftTeamInput( 'CloudFiles', 'Team for managing all activities related to Account XYZ', null, null )}; List newMSTeamIds = cldfs.Client.createMicrosoftTeam(input, 'integrationUser'); ``` --- # Create Salesforce File (Apex Method) https://help.cloudfiles.io/salesforce/create-salesforce-file # Create Salesforce File Copy a file from external storage into Salesforce as a native Salesforce File, from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void createContentVersion( List files, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | files | List<Types.CreateContentVersionPayload> | required | One entry per file to copy into Salesforce. Each is a Types.CreateContentVersionPayload carrying the source file metadata. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type void ## Example ```apex List files = new List{ new cldfs.Types.CreateContentVersionPayload( '01KEHAKUUSU3E5OUXBBJGLYTD3IZU4BCRV', //fileId 'b!nJBtPq_z5UeJtFrj_f24XEQqlPUD8vtFsg7GBcrXJepiUn9bkb_7QbDPtqHVD-cP', //driveId 'sharepoint', //Library '{"recordId": "00QdL000009q8txUAA"}' //recordId Json ) }; cldfs.Client.createContentVersion(files, 'integrationUser'); ``` > **Parameter name** — The first parameter is named files (per the Client.cls signature). Older Archbee docs labelled it inputs. --- # Create SharePoint Drive (Apex Method) https://help.cloudfiles.io/salesforce/EtHZ-create-sharepoint-drive # Create SharePoint Drive Create a new SharePoint drive from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List createDrive( List inputs, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.CreateDriveInput> | required | List of Types.CreateDriveInput. One entry per drive to create. | | runAs | String | required | runAs, usually this would be a static value — integrationUser. | ## Return Type List inputs = new List{ new cldfs.Types.CreateDriveInput( 'Test SharePoint Drive', 'xyz_SharePoint_siteId_123' ) }; List drives = cldfs.Client.createDrive(inputs, 'integrationUser'); ``` --- # Create SharePoint Site (Apex Method) https://help.cloudfiles.io/salesforce/u7SF-create-sharepoint-site # Create SharePoint Site Create one or more SharePoint sites from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List createSharePointSite( List inputs, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.CreateSharePointSiteInput> | required | One entry per SharePoint site to create (Types.CreateSharePointSiteInput). | | runAs | String | optional | Email Id of the user on whose behalf the function should run. Supply integrationUser to run the action as the automation user. | ## Return Type List payloads = new List(); cldfs.Types.CreateSharePointSiteInput payload = new cldfs.Types.CreateSharePointSiteInput( 'Test SharePoint Site', 'https://cloudfileswork.sharepoint.com/sites/Test SharePoint Site' ); payloads.add(payload); List sites = cldfs.Client.createSharePointSite(payloads, 'integrationUser'); ``` --- # Copy Resources (Apex Method) https://help.cloudfiles.io/salesforce/copy-resources # Copy Resources Copy files and folders to a new location within the same external storage drive from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void copyResources( List inputs, String library, String driveId, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.CopyResourceInput> | required | List of Types.CopyResourceInput objects, one per resource to copy. | | library | String | required | Type of library. Example: sharepoint. You can get this value from the Content Library. | | driveId | String | optional | Only applicable for sharepoint and google libraries. Id of the drive in the library. You can get this value from the Content Library. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type void ## Example ```apex List inputs = new List{ new cldfs.Types.CopyResourceInput( '673f9fa0551db2164a42e392', '6761bc5d7e748db3f896e416', 'workspace' ) }; cldfs.Client.copyResources( inputs, 'cloudfiles', 'workspace', 'integrationUser' ); ``` --- # Copy Salesforce Files (Apex Method) https://help.cloudfiles.io/salesforce/xaoZ-copy-salesforce-files # Copy Salesforce Files Copy Salesforce Files to external storage from Apex. Files are queued and processed at a dynamic rate based on the external library, with no file-size limit. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void upload( List files, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | files | List<Types.UploadSalesforceFilePayload> | required | List of Types.UploadSalesforceFilePayload objects, one per Salesforce file to copy. | | runAs | String | required | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type void — after a file is successfully copied, a Salesforce File Copied platform event is published. You can use this event as a trigger in Apex or flows to delete the Salesforce file using the delete SObject method. ## Example ```apex List inputs = new List{ new cldfs.Types.UploadSalesforceFilePayload( '069DO000000hwB8YAI', 'sharepoint', '01PLJOYLOAWJBFGBSE7FHK5AKOSIMDIO6H', 'b!ZfA15HRS1Uy9pH3Vw5tFjAHfP1lRYlZAvDwLnHYYq8sa-L6ejXB-TJbMYUxi1QfL', null ) }; cldfs.Client.upload(inputs,'integrationUser'); ``` --- # Delay (Apex Method) https://help.cloudfiles.io/salesforce/QeBO-delay # Delay Add a controlled pause to Apex execution, useful in asynchronous processes. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List execute(List inputs) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Delay.FlowInput> | required | One entry per delay. Each FlowInput carries delayInMilliSeconds — the pause in milliseconds. | ## Return Type List requestId = cldfs.Delay.execute(new List{ inputs }); ``` > **Also available: Client.delay()** — The invocable form above (cldfs.Delay.execute(FlowInput)) is the flow-friendly entry point. The package also exposes a direct method Client.delay(Integer delayInMilliSeconds, List Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void deleteAttachments( List attachmentInputs, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | attachmentInputs | List<Types.DeleteAttachmentInput> | required | List of Types.DeleteAttachmentInput. | | library | String | required | Type of Library. Example - sharepoint | | runAs | String | required | Email Id of the user on whom behalf the function should run. If you want to run the action as automation user, supply integrationUser. | ## Return Type void ## Example ```apex List deleteAttachmentInputs = new List{ new cldfs.Types.DeleteAttachmentInput( '6761bc5d7e748db3f896e416', 'file', '006DXXXXXXXXXXXX' ) }; cldfs.Client.deleteAttachments(deleteAttachmentInputs,'google','integrationUser'); ``` --- # Delete Resource (Apex Method) https://help.cloudfiles.io/salesforce/FqAE-delete-resource # Delete Resource Delete one or more resources (files or folders) in connected external storage from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void deleteResources( List resourcesInput, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | resourcesInput | List<Types.DeleteResourcesInput> | required | One entry per resource to delete. Each is a Types.DeleteResourcesInput. | | library | String | required | Target storage library. Valid values: sharepoint, google, onedrive, dropbox, box, or cloudfiles (AWS S3). | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type void ## Example ```apex List resourcesInput = new List{ new cldfs.Types.DeleteResourcesInput( new List{'67e3f19b2dee6c355fc82416'}, 'file', '' ) }; cldfs.Client.deleteResources(resourcesInput, 'cloudfiles', 'integrationUser'); ``` --- # Generate Document (Apex Method) https://help.cloudfiles.io/salesforce/zktr-generate-document # Generate Document Generate one or more documents from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void generateDocument( List payloads, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | payloads | List<Types.DocGenRequestInput> | required | One entry per document generation request. See Types.DocGenRequestInput. | | runAs | String | optional | Username to attribute the operation to; usually a static value such as 'integrationUser'. | ## Return Type void ## Example ```apex cldfs.DocGenParams dcp = new cldfs.DocGenParams(); dcp.PdfViewPassword = 'admin'; dcp.PdfOwnerPassword = 'superadmin'; dcp.LockPdf = true; dcp.AllowPdfPrinting = true; dcp.AllowFillingPdfFormFields = true; cldfs.Types.DocGenRequestInput docGenInputs = new cldfs.Types.DocGenRequestInput( '681b4169c697ffdc2aab2731', new Map{ 'userId' => '005dL000008FbqgQAC', 'recordId' => '003dL00000YsapJQAR'}, 'pdf', new cldfs.Resource( '68887db5ef0b3ca7534dbbd5', 'folder', null, 'cloudfiles', 'workspace' ), dcp ); List payload = new List{ docGenInputs }; cldfs.Client.generateDocument( payload, 'integrationUser' ); ``` > **Document Generated event** — After the file is successfully generated, a Document Generated platform event is published. You can use this event as a trigger in Apex or Flows to perform your next steps. --- # Generate Document (Batch) (Apex Method) https://help.cloudfiles.io/docs/apex-generate-document-batch/ # Generate Document (Batch) Generate multiple documents from Apex in a single batch, optionally sent for signature as one combined DocuSign envelope. > Kind: Apex method · Updated: 2026-07-13 ## Signature ```apex global static void execute( List inputs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<GenerateDocumentBatch.FlowInput> | required | One entry per document group. Each FlowInput carries the documents to generate and the optional signing settings for that group. See the field breakdown below. | ### FlowInput ### FlowInput | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<GenerateDocumentFlowInput> | required | The documents to generate in this group. Each entry describes one document. | | signingSettings | GenerateDocumentSigningSettings | optional | Combined-envelope signing options for this group. Leave empty for the default behavior (one envelope per document). | ### GenerateDocumentFlowInput ### GenerateDocumentFlowInput | Parameter | Type | Required | Description | |---|---|---|---| | templateId | String | required | Id of the CloudFiles template to render. | | documentType | String | required | Output document type, for example 'docx' or 'pdf'. | | recordId | String | optional | Record Id the document is generated for. | | cloudFilesVariables | List<CloudFilesVariable> | optional | Merge variables for the template, each a key and value. | | destination | Resource | optional | Where the generated document is stored. | | params | DocGenParams | optional | Additional generation parameters such as PDF security and retention settings. | ### GenerateDocumentSigningSettings ### GenerateDocumentSigningSettings | Parameter | Type | Required | Description | |---|---|---|---| | combineDocuments | Boolean | optional | When true, all documents in this group are sent for signature together as one DocuSign envelope. Signers receive a single email and the signed documents are delivered together. | | emailSubject | String | optional | Subject of the DocuSign envelope email. Defaults to the first document's template signing settings. | | emailMessage | String | optional | Message body of the DocuSign envelope email. Defaults to the first document's template signing settings. | ## Return Type void ## Example ```apex // Build one or more document inputs cldfs.GenerateDocumentFlowInput docInput = new cldfs.GenerateDocumentFlowInput(); docInput.templateId = '681b4169c697ffdc2aab2731'; docInput.documentType = 'pdf'; docInput.recordId = '003dL00000YsapJQAR'; docInput.destination = new cldfs.Resource( '68887db5ef0b3ca7534dbbd5', 'folder', null, 'cloudfiles', 'workspace' ); docInput.params = new cldfs.DocGenParams(); // Optional: send the whole group as one DocuSign envelope cldfs.GenerateDocumentSigningSettings signingSettings = new cldfs.GenerateDocumentSigningSettings(); signingSettings.combineDocuments = true; signingSettings.emailSubject = 'Please sign your documents'; cldfs.GenerateDocumentBatch.FlowInput input = new cldfs.GenerateDocumentBatch.FlowInput(); input.inputs = new List{ docInput }; input.signingSettings = signingSettings; cldfs.GenerateDocumentBatch.execute( new List{ input } ); ``` > **Combined-envelope signing & Batch Apex support** — Each processed input publishes a Document Generated event; if generation or signing fails, an Error Event is published for that input.Set combineDocuments = true on the signing settings to send every document in the group as a single DocuSign envelope, so signers get one email and sign everything in one session and the signed documents are delivered together. Leave the signing settings empty to keep the default behavior of one envelope per document.The action runs asynchronously and can be invoked from Batch Apex or other asynchronous (future / queueable) contexts. --- # Generate Document (Sync) (Apex Method) https://help.cloudfiles.io/salesforce/VKtN-generate-document-sync # Generate Document (Sync) Generate one or more documents synchronously from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List generateDocumentSync( List payloads, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | payloads | List<Types.DocGenRequestInput> | required | A List of Types.DocGenRequestInput — one entry per document to generate. | | runAs | String | required | Username to attribute the operation to; usually a static value such as 'integrationUser'. | ## Return Type List{ 'userId' => '005dL000008FbqgQAC', 'recordId' => '003dL00000YsapJQAR'}, 'pdf', new cldfs.Resource( '68887db5ef0b3ca7534dbbd5', 'folder', null, 'cloudfiles', 'workspace' ), dcp ); List payload = new List{ docGenInputs }; List generatedDocuments = cldfs.Client.generateDocumentSync( payload, 'integrationUser' ); ``` --- # Get Attachments (Apex Method) https://help.cloudfiles.io/salesforce/get-attachments # Get Attachments Get the files and folders attached to one or more Salesforce records from Apex. Wraps the same Client.listAttachments() method as Get Connected Folder. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List> listAttachments( List parentIds, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | parentIds | List<String> | required | The Salesforce record Ids of the records where files/folders are attached. | | runAs | String | required | Username to attribute the operation to; usually a static value — 'integrationUser'. | ## Return Type List parentIds = new List{ '001dL00000ZJIYiQAP', '0010Y00000B1Q2HQAV' }; List> returnedAttachments = cldfs.Client.listAttachments( parentIds, 'integrationUser' ); ``` --- # Get Connected Folder (Apex Method) https://help.cloudfiles.io/salesforce/get-connected-folder # Get Connected Folder Retrieve folder-type attachments (such as the connected Parent folder) for a Salesforce record from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List> listAttachments( List parentIds, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | parentIds | List<String> | required | List of Salesforce RecordIds. | | runAs | String | required | Email Id of the user on whom behalf the function should run. If you want to run the action as automation user, supply integrationUser. | ## Return Type List> attachments = new List>(); attachments = cldfs.Client.listAttachments(new List{'001dL00000ZJIYiQAP'}, 'integrationUser'); ``` > **Same method as Get Attachments** — This uses the same underlying cldfs.Client.listAttachments as Get Attachments; the two are documented as separate pages for their distinct use cases. --- # Get Event Details (Apex Method) https://help.cloudfiles.io/salesforce/get-event-details # Get Event Details Resolve the full details of a CloudFiles Event from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List GetEventDetails( List inputs ) ``` > **Invocable Apex class** — This is an invocable Apex class, not a Client method. Call it as cldfs.GetEventDetails.GetEventDetails(inputs) rather than cldfs.Client.*. Each FlowInput carries either an Event custom object (CloudFilesEvent__c) or an Event platform event (CloudFiles_Event__e), matching your CloudFiles Event Mode setting. ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<GetEventDetails.FlowInput> | required | One entry per event to resolve. Each FlowInput exposes eventCustomObj (Event custom object) and event (Event platform event); populate whichever matches your CloudFiles Event Mode setting. | ## Return Type List returnedEvents = new List(); List getEventDetailInputs = new List(); for(cldfs__CloudFilesEvent__c record : Trigger.new){){ cldfs.GetEventDetails.FlowInput singleInput = new cldfs.GetEventDetails.FlowInput(); singleInput.eventCustomObj = record; getEventDetailInputs.add(singleInput); } returnedEvents = cldfs.GetEventDetails.GetEventDetails(getEventDetailInputs); ``` ```apex List returnedEvents = new List(); List getEventDetailInputs = new List(); for(cldfs__CloudFiles_Event__e pe : Trigger.new){ cldfs.GetEventDetails.FlowInput singleInput = new cldfs.GetEventDetails.FlowInput(); singleInput.event = pe; getEventDetailInputs.add(singleInput); } returnedEvents = cldfs.GetEventDetails.GetEventDetails(getEventDetailInputs); ``` --- # Get Files Connect Resource Id (Apex Method) https://help.cloudfiles.io/salesforce/UYSN-get-files-connect-resource-id # Get Files Connect Resource Id Retrieve Files Connect Resource Ids for external-storage files or folders from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List execute(List resources) ``` > **Invocable class** — This is an invocable class, not a Client method. Call it as cldfs.GetFilesConnectResourceId.execute(ListResource> | required | List of Resource records identifying the external files or folders whose Files Connect Resource Ids you want to retrieve. | ## Return Type List resources = new List { new cldfs.Resource('01KEHAKUVATUH5R5QRKJBLR3ITM3E6VCXN', null, null, 'sharepoint', 'b!nJBtPq_z5UeJtFrj_f24XEQqlPUD8vtFsg7GBcrXJepiUn9bkb_7QbDPtqHVD-cP') }; List fileConnectResourceIds =cldfs.GetFilesConnectResourceId.execute(resources); ``` --- # Get Folder Contents (Apex Method) https://help.cloudfiles.io/salesforce/9MdU-get-folder-contents # Get Folder Contents Get the contents of one or more folders stored in external systems like SharePoint or Google Drive. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List getFolderContents( List folders, String sortBy, String sortOrder, String runAs, String contentType ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | folders | List<Resource> | required | List of Resource objects representing the source folders. | | sortBy | String | optional | Content field to sort by. For example, name for alphabetic sorting. | | sortOrder | String | optional | Sort direction: ascending or descending. | | runAs | String | optional | Email of the user to run the action on behalf of. Supply integrationuser to run as the automation user. | | contentType | String | optional | Use null to return everything; use folder to return only folders. | ## Return Type List folders = new List{ new cldfs.Resource( '68887db5ef0b3ca7534dbbd5', 'folder', 'Leads', 'cloudfiles', 'workspace' ) }; List outputs = cldfs.Client.getFolderContents( folders, null, null, 'integrationUser', null ); ``` --- # Get Preview URL https://help.cloudfiles.io/salesforce/get-preview-url # Get Preview URL Get preview URLs for one or more files from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List getPreviewUrls( List resources, PreviewParams params, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | resources | List<Resource> | required | A list of Resource records to generate preview URLs for. | | params | PreviewParams | required | A custom type. PreviewParams has a Boolean allowDownload property. | | library | String | required | Target storage library. | | runAs | String | optional | Username to attribute the operation to; defaults to the integration user. | ## Return Type List previewUrls = new List(); cldfs.PreviewParams PreviewParams = new cldfs.PreviewParams(); PreviewParams.allowDownload = true; previewUrls = cldfs.Client.getPreviewUrls( new List{ new cldfs.Resource( '001XXXXXXXXXXX', 'file', 'image.png', 'library', 'driveId' ) }, PreviewParams, 'library', 'integrationUser' ); ``` --- # Get Resource Details (Apex Method) https://help.cloudfiles.io/salesforce/xR7W-get-resource-details # Get Resource Details Retrieve resource details from external storage in Apex via the GetResource invocable. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List execute(List inputs) ``` > **Invocable class, not Client** — This is an invocable method exposed on the GetResource class, not a Client method. Call it as cldfs.GetResource.execute(inputs), passing a List resources = cldfs.GetResource.execute(new List{flowInput}); ``` --- # Get Salesforce Files (Apex Method) https://help.cloudfiles.io/salesforce/nqTl-get-salesforce-files # Get Salesforce Files Retrieve the ContentDocument Ids of all Salesforce files attached to a record from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List> execute(List inputs) ``` > **Invocable class** — This is an invocable method, not a Client method. Call it as cldfs.GetSalesforceFiles.execute(inputs) where each input is a cldfs.GetSalesforceFiles.FlowInput carrying a recordId — not as cldfs.Client.*. ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<GetSalesforceFiles.FlowInput> | required | One entry per Salesforce record. Each FlowInput carries the recordId whose attached files you want. | ## Return Type List> ContentDocumentIds = cldfs.GetSalesforceFiles.execute(new List{input}); ``` --- # Merge Documents (Sync) (Apex Method) https://help.cloudfiles.io/salesforce/vuQO-merge-documents-sync # Merge Documents (Sync) Combine multiple PDF, DOCX, PNG, or JPEG files into a single consolidated document synchronously from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List mergeDocumentsSync( List payloads, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | payloads | List<Types.MergeDocumentsRequestInput> | required | List of Types.MergeDocumentsRequestInput. One entry per merge request. | | runAs | String | optional | Username to attribute the operation to; usually a static value such as integrationUser. | ## Return Type List resourcesToMerge = new List{ new cldfs.Resource('01KEHAKUVVZCAVRDFCTJAZGEHHVIECEE5S', 'file', 'Empty Doc.docx', 'sharepoint', 'b!nJBtPq_z5UeJtFrj_f24XEQqlPUD8vtFsg7GBcrXJepiUn9bkb_7QbDPtqHVD-cP'), new cldfs.Resource('01KEHAKUQ6HPTOXBHSBVALO5N4DE6VXNTT', 'file', 'Empty Pdf.pdf', 'sharepoint', 'b!nJBtPq_z5UeJtFrj_f24XEQqlPUD8vtFsg7GBcrXJepiUn9bkb_7QbDPtqHVD-cP') }; List payloads = new List{ new cldfs.Types.MergeDocumentsRequestInput( resourcesToMerge, 'Test Merge', destination ) }; List GeneratedDocument = cldfs.Client.mergeDocumentsSync(payloads, 'integrationUser'); ``` --- # Move Resources https://help.cloudfiles.io/salesforce/move-resources # Move Resources Move one or more resources (files/folders) to a new destination from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void moveResources( List inputs, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.MoveResourceInput> | required | List of Types.MoveResourceInput objects; one entry per resource to move. | | library | String | required | Type of library. Example: sharepoint. You can get this value from the Content Library. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type void ## Example ```apex List inputs = new List{ new cldfs.Types.MoveResourceInput( '67ef8a5bd98d18e317d0891d', 'file', 'workspace', '68887db5ef0b3ca7534dbbd5' ) }; cldfs.Client.moveResources(inputs, 'cloudfiles', 'integrationUser'); ``` --- # Process Document using AI (Apex Method) https://help.cloudfiles.io/salesforce/IaoO-process-document-using-ai # Process Document using AI Process one or more documents with AI from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void processDocument( List payloads, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | payloads | List<Types.ProcessDocumentPayload> | required | A list of Types.ProcessDocumentPayload, one entry per document to process. | | runAs | String | required | Username to attribute the operation to; usually a static value such as 'integrationUser'. | ## Return Type void — after CloudFiles finishes processing the document it fires the Document Processed platform event. ## Example ```apex List payloads = new List{ new cldfs.Types.ProcessDocumentPayload( 'fileId', 'driveId', 'library', 'context' ) }; cldfs.Client.processDocument(payloads,'integrationUser'); ``` > **Testing** — Use ClientFactory with default mock values to get coverage without callouts. See How to get test coverage of code that uses Client methods. --- # Query Document https://help.cloudfiles.io/salesforce/query-document # Query Document Run a Query Document/Dataset action from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List queryDocument( List payloads, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | payloads | List<Types.QueryDocumentPayload> | required | A list of Types.QueryDocumentPayload, one per query. | | runAs | String | required | Username to attribute the operation to; usually a static value such as 'integrationUser'. | ## Return Type List queryDocuments = new List{ new cldfs.Types.QueryDocumentPayload( 'query', 'processedDocumentId' ) }; cldfs.Client.queryDocument(queryDocuments, 'integrationUser'); ``` --- # Remove from Community (Apex Method) https://help.cloudfiles.io/salesforce/SkrN-remove-from-community # Remove from Community Unshare a file or folder from a Salesforce record and its Experience Cloud (community) users. Backed by the Client.unshareResources() Apex method. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void unshareResources( List unshareResourceInputs, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | unshareResourceInputs | List<Types.UnshareResourceInput> | required | List of Types.UnshareResourceInput entries — one per resource to unshare from the community. | | library | String | required | Type of library (for example, sharepoint). You can get this value from the Content Library. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type void ## Example ```apex List unshareResourceInputs = new List { new cldfs.Types.UnshareResourceInput( '01KEHAKUXVID7NMSLZINGKUXGQ3SIT75CM', 'file', '001dL00000Wonj3QAB' ) }; cldfs.Client.unshareResources(unshareResourceInputs, 'sharepoint', 'integrationUser'); ``` > **Method name** — This page is titled Remove from Community, but the underlying Apex method is Client.unshareResources(), invoked as cldfs.Client.unshareResources(...). --- # Search by Resource Metadata (Apex Method) https://help.cloudfiles.io/salesforce/search-by-resource-metadata # Search by Resource Metadata Search resources by metadata property from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List searchByProperty( List inputs, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.SearchByPropertyInput> | required | List of search-property input objects, each pairing a metadata property with the value to match. | | library | String | required | Type of library. Example — sharepoint. You can get this value from Content Library. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type List returnedList = new List(); List searchInputs = new List(); cldfs.Types.SearchByPropertyInput searchInput = new cldfs.Types.SearchByPropertyInput( 'name',//Property 'CloudFiles',//Value 'b!nJBtPq_z5UeJtFrj_f24XEQqlPUD8vtFsg7GBcrXJepiUn9bkb_7QbDPtqHVD-cP'//DriveId ); searchInputs.add(searchInput); returnedList = cldfs.Client.searchByProperty( searchInputs, 'sharepoint', 'integrationUser' ); ``` --- # Set Resource Property (Apex Method) https://help.cloudfiles.io/salesforce/0ZOO-set-resource-property # Set Resource Property Update resource metadata properties from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void updateResources( List inputs, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.UpdateResourceInput> | required | List of Types.UpdateResourceInput entries, one per resource whose metadata is being updated. | | library | String | required | Type of library, e.g. sharepoint. You can get this value from the Content Library. | | runAs | String | optional | runAs; usually a static value such as integrationUser. | ## Return Type void ## Example ```apex cldfs.Resource resource = new cldfs.Resource( '01KEHAKUXCQ6YIOFLOPJHJN57Y5EYQTJMZ',//resourceId 'folder',// file or folder 'Leads', //folder or file Name 'sharepoint', //library 'b!nJBtPq_z5UeJtFrj_f24XEQqlPUD8vtFsg7GBcrXJepiUn9bkb_7QbDPtqHVD-cP' //drive Id ); Map updates = new Map(); updates.put('name', 'CloudFiles Leads'); List inputs = new List{ new cldfs.Types.UpdateResourceInput( resource, updates ) }; String library = 'sharepoint'; String runAs = 'integrationUser'; Cldfs.Client.updateResources(inputs, library, runAs); ``` > **Same method as Update Resources** — This is the same underlying Client.updateResources method documented by the Update Resources page; both entry points call it. --- # Share With Community User (Apex Method) https://help.cloudfiles.io/salesforce/zOGn-share-with-community-user # Share With Community User Explicitly share resources with Experience Cloud pages or with users/groups from Apex. > Kind: Apex method · Updated: 2026-07-01 > **Method name** — The Archbee page is titled Share With Community User, but the underlying Apex method is shareResources(). Call it as cldfs.Client.shareResources(...). ## Signature ```apex global static List shareResources( List shareResourceInputs, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | shareResourceInputs | List<Types.ShareResourceInput> | required | List of Types.ShareResourceInput entries, one per resource to share. | | library | String | required | Type of library (example - sharepoint). You can get this value from the Content Library. | | runAs | String | optional | runAs — usually a static value, integrationUser. | ## Return Type List shareResourceInputs = new List { new cldfs.Types.ShareResourceInput( '01KEHAKUXVID7NMSLZINGKUXGQ3SIT75CM', 'file', '001dL00000Wonj3QAB', 'b!nJBtPq_z5UeJtFrj_f24XEQqlPUD8vtFsg7GBcrXJepiUn9bkb_7QbDPtqHVD-cP' ) }; List attachments = cldfs.Client.shareResources( shareResourceInputs, 'sharepoint', 'integrationUser' ); ``` --- # Split Document https://help.cloudfiles.io/salesforce/split-document # Split Document Intelligently split a document into multiple files from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void splitDocument( List payloads, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | payloads | List<Types.SplitDocumentPayload> | required | List of Types.SplitDocumentPayload — one entry per document to split. | | runAs | String | optional | Username to attribute the operation to; usually a static value such as integrationUser. | ## Return Type void ## Example ```apex cldfs.Resource destination = new cldfs.Resource( '006dL000005H4srQAC', null, null, 'salesforce', null ); String context = '006dL000005H4srQAC'; List payloads = new List{ new cldfs.Types.SplitDocumentPayload( '069dL00000B4C7WQAV', null, 'salesforce', destination, null, context ) }; cldfs.Client.splitDocument(payloads, 'integrationUser'); ``` > **Testing** — Use ClientFactory with default mock values to get coverage without callouts. See How to get test coverage of code that uses Client methods. --- # Unassign User Licenses (Apex Method) https://help.cloudfiles.io/salesforce/9wdG-unassign-user-licenses # Unassign User Licenses Remove licenses from users when they are no longer required, from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static List unassignUserLicenses( List inputs, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.UpdateLicensesInput> | required | List of Types.UpdateLicensesInput, one entry per license update. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the CloudFiles integration user, supply integrationUser. | ## Return Type List inputs = new List{ new Cldfs.Types.UpdateLicensesInput(new List{'005dL000008FbqgQAC'}, 'document-management') }; String runAs = 'integerationUser'; List output = Cldfs.Client.unassignUserLicenses(inputs, runAs); ``` --- # Update Link Settings (Apex Method) https://help.cloudfiles.io/salesforce/dpQw-update-link-settings # Update Link Settings Update the security policies on one or more CloudFiles links from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void updateLinksSettings( List inputs, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.UpdateLinkSettingsInput> | required | One entry per link whose settings you want to update. Fields on Types.UpdateLinkSettingsInput: id, isActive, allowDownloading, requirePassword, password, allowedEmails, allowedDomains, enableEmailVerification. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type void ## Example ```apex cldfs.UpdateLinkSettings.FlowInput flowInput = new cldfs.UpdateLinkSettings.FlowInput(); flowInput.linkId = '68591442a9a65391d56b7caf'; flowInput.isDisabled = false; flowInput.allowDownloading = false; flowInput.password = 'password123'; cldfs.UpdateLinkSettings.execute(new List{flowInput}); ``` > **Example uses the invocable form** — The signature above documents the cldfs.Client.updateLinksSettings(List Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void updatePermissions( List permissionInputs, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | permissionInputs | List<Types.PermissionInput> | required | List of Types.PermissionInput entries describing the permission changes to apply. | | library | String | required | Type of library. Example — sharepoint. You can get this value from your Content Library. | | runAs | String | optional | Email ID of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type void ## Example ```apex List permissionInputs = new List{ new cldfs.Types.PermissionInput('grant', 'write', '01BXPY7JP4Q3T32A2NDFFINJFMIIVL2B4Q', 'file', 'b!CiFUkdxwFEKQCdK8T8qY60NOJiIwBzxLqNUvhN3EhhxklKcoC3hIQboLLnFIpAQs', new List{'testuser@gmail.com'}, new List{}, new List{}) }; cldfs.Client.updatePermissions( permissionInputs, 'sharepoint', 'integrationUser' ); ``` --- # Update Resources https://help.cloudfiles.io/salesforce/update-resources # Update Resources Update resource (file or folder) properties like name and description from Apex. > Kind: Apex method · Updated: 2026-07-01 ## Signature ```apex global static void updateResources( List inputs, String library, String runAs ) ``` ### Parameters | Parameter | Type | Required | Description | |---|---|---|---| | inputs | List<Types.UpdateResourceInput> | required | List of Types.UpdateResourceInput objects, one per resource to update. | | library | String | required | Type of library. Example — sharepoint. You can get this value from your Content Library. | | runAs | String | optional | Email Id of the user on whose behalf the function should run. To run the action as the automation user, supply integrationUser. | ## Return Type void ## Example ```apex List inputs = new List(); Map updates = new Map(); updates.put('name', 'New Name'); cldfs.Resource resourceToUpdate = new cldfs.Resource( '68887db5ef0b3ca7534dbbd5', 'folder', null, 'cloudfiles', 'workspace' ); inputs.add(new cldfs.Types.UpdateResourceInput(resourceToUpdate, updates)); cldfs.Client.updateResources(inputs, 'cloudfiles', 'integrationUser'); ``` --- # How to get test coverage of code that uses Client methods https://help.cloudfiles.io/salesforce/how-to-get-test-coverage-of-code-that-uses-client-methods # How to get test coverage of code that uses Client methods Why Client-method code needs ClientFactory to reach 75% test coverage, and where to go next. > Kind: Guide · Updated: 2026-07-05 After you've built code that uses cldfs.Client methods in your sandbox, you would need to get more than 75% test coverage to have it deployed to production. This means writing specific test classes/methods for your code utilising this functionality by Salesforce. cldfs.Client methods however might make multiple callouts for their utility, and since the implementation of these methods is part of managed package code, you can't set mocks for individual callouts using Test.setMock CloudFiles thus provides another class cldfs.ClientFactory which automatically returns mocked responses depending on the context i.e Test/Runtime. This section covers details on how to get coverage for your classes utilizing CloudFiles' methods including simple and complex examples. About ClientFactory - As the name suggests, cldfs.ClientFactory is a class built on the Factory pattern which returns a runtime instance or a test instance depending on the context. Read this article to know more. --- # About ClientFactory https://help.cloudfiles.io/salesforce/about-clientfactory # About ClientFactory cldfs.ClientFactory returns a runtime or test instance of Client, so managed-package callouts can be mocked. > Kind: Guide · Updated: 2026-07-05 As the name suggests, cldfs.ClientFactory is a class built on the Factory pattern which returns a runtime instance or a test instance depending on the context. Since you would've already written code using cldfs.Client static methods, the first step would be to modify this code to use cldfs.ClientFactory's instance methods instead. Don't worry, this would be simple enough since signatures for each method in both of these classes remain the same. Here's an example of how to change such a piece of code, we'll take for example the Create Attachments method - ```apex //Using cldfs.Client static methods List inputs = new List{ new cldfs.Types.CreateAttachmentInput(, 'folder', , 'b!ZfA15HRS1Uy9pH3Vw5tFjAHfP1lRYlZAvDwLnHYYq8sa-L6ejXB-TJbMYUxi1QfL') }; List attachments = cldfs.Client.createAttachments( inputs, 'sharepoint', 'integrationUser' ); //Converted code to use cldfs.ClientFactory instance methods List inputs = new List{ new cldfs.Types.CreateAttachmentInput(, 'folder', , 'b!ZfA15HRS1Uy9pH3Vw5tFjAHfP1lRYlZAvDwLnHYYq8sa-L6ejXB-TJbMYUxi1QfL') }; cldfs.ClientFactory client = cldfs.ClientFactory.getInstance(); List attachments = client.createAttachments( inputs, 'sharepoint', 'integrationUser' ); ``` --- # Sample Use case https://help.cloudfiles.io/salesforce/sample-use-case # Sample Use case End-to-end example: a custom mock class, a custom action built on ClientFactory, and its test class. > Kind: Guide · Updated: 2026-07-05 Suppose you've a requirement from business to create a flow action that gets attachments using Get Attachments from a record and creates sharing links using Create Links for only the files with type: pdf ### Inputs The inputs to the action would be: recordId of the record to be processed ### Outputs Outputs of this custom action would be what Create Links returns ### Why do we Need a Custom Mock Class As explained in the About ClientFactory article, ClientFactory returns a default mocked implementation of Client methods, these default methods may not have return values specific to our use case. And hence for more control, you can define a CustomMock class which extends ClientFactory and inject it as a dependency while getting a ClientFactory instance. Below is a custom mock implementation and how to use it for our use case defined earlier. ### Apex Custom Mock Implementation Example ```apex public class CustomMock extends cldfs.ClientFactory{ public override List> listAttachments(List parentIds,String runAs) { List> result = new List>(); List attList = new List(); cldfs.Attachment file = new cldfs.Attachment(); file.id = 'testid-1'; file.resource = new cldfs.Resource( 'testid-1', 'file', 'test file.pdf', 'library', 'driveId-1' ); cldfs.Attachment folderAttachment = new cldfs.Attachment(); folderAttachment.id = 'testfolderid-2'; folderAttachment.resource = new cldfs.Resource( 'testfolderid-2', 'folder', 'folder name-2', 'library', 'driveId-1' ); attList.add(file); attList.add(folderAttachment); result.add(attList); return result; } public override List createLinks(List linkInputs, String library, String runAs) { List links = new List(); for (Integer i = 0; i < linkInputs.size(); i++) { cldfs.Link l = new cldfs.Link(); l.id = 'testid-' + String.valueOf(i); l.url = 'http://test.url/' + String.valueOf(i); links.add(l); } return links; } } ``` ### Apex Custom Action: Generate PDF Links from Attachments ```apex public with sharing class GeneratePdfLinksAction { public static List GeneratePdfLinksAction(Id recordId) { cldfs.ClientFactory client = cldfs.ClientFactory.getInstance(new CustomMock()); List> attachments = client.listAttachments(new List{recordId}, 'integrationUser'); List attachment = attachments[0]; List linkInputs = new List(); String library = attachment[0].resource.library; for (cldfs.Attachment attach : attachment) { cldfs.Resource resource = attach.resource; if (resource.name.endsWith('.pdf')) { linkInputs.add( new cldfs.Types.CreateLinkInput( resource.id, resource.type, recordId, null, resource.driveId ) ); } } return client.createLinks( linkInputs, library, 'integrationUser' ); } } ``` ### Apex Test Class for GeneratePdfLinksAction ```apex @IsTest public with sharing class TestGeneratePdfLinksAction { @TestSetup public static void setupData(){ Account acc = new Account(Name = 'Test Account'); insert acc; } @IsTest public static void TestGeneratePdfLinksAction() { Account account = [SELECT Id FROM Account LIMIT 1]; Test.startTest(); List links= GeneratePdfLinksAction.GeneratePdfLinksAction(account.Id); Test.stopTest(); Assert.isNotNull(links); } } ``` --- # Default Mock Values https://help.cloudfiles.io/salesforce/default-mock-values # Default Mock Values The MockClient responses ClientFactory returns in test context when no custom mock is injected. > Kind: Guide · Updated: 2026-07-05 The following MockClient class provides simulated responses for CloudFiles client methods, allowing you to test functionality without making real API calls in the test context. These are the default mocked responses that are returned when no custom mock is injected. ```apex @isTest global with sharing class MockClient extends ClientFactory { global override void delay( Integer delayInMilliSeconds, List requestIds ) { } global override List createAttachments( List attachmentInputs, String library, String runAs ) { List atts = new List(); for (Integer i = 0; i < attachmentInputs.size(); i++) { Types.CreateAttachmentInput input = attachmentInputs[i]; Attachment att = new Attachment(); att.id = 'testid-' + String.valueOf(i); att.resource = new Resource( 'testid-' + String.valueOf(i), input.resourceType, 'test-resource-' + String.valueOf(i), library, input.driveId ); atts.add(att); } return atts; } global override List shareResources( List shareResourceInputs, String library, String runAs ) { List atts = new List(); for (Integer i = 0; i < shareResourceInputs.size(); i++) { Types.ShareResourceInput input = shareResourceInputs[i]; Attachment att = new Attachment(); att.id = 'testid-' + String.valueOf(i); att.resource = new Resource( input.resourceId, input.resourceType, 'test-resource-' + String.valueOf(i), library, input.driveId ); atts.add(att); } return atts; } global override void deleteAttachments( List attachmentInputs, String library, String runAs ) { } global override void unshareResources( List unshareResourceInputs, String library, String runAs ) { } global override List assignUserLicenses( List inputs, String runAs ) { List outs = new List(); for (Integer i = 0; i < inputs.size(); i++) { UpdateLicensesFlowOutput out = new UpdateLicensesFlowOutput(); out.totalLicenses = 100; out.remainingLicenses = 100 - (i + 1); outs.add(out); } return outs; } global override List unassignUserLicenses( List inputs, String runAs ) { List outs = new List(); for (Integer i = 0; i < inputs.size(); i++) { UpdateLicensesFlowOutput out = new UpdateLicensesFlowOutput(); out.totalLicenses = 100; out.remainingLicenses = 100; outs.add(out); } return outs; } global override void updateLinksSettings( List inputs, String runAs ) { } global override List createFolders( List inputs, String libraryId, String runAs ) { List resources = new List(); for (Integer i = 0; i < inputs.size(); i++) { Types.CreateFolderInput input = inputs[i]; Resource createdFolder = new Resource( 'testid-' + String.valueOf(i), 'folder', 'testfolder-' + String.valueOf(i), libraryId, input.driveId ); resources.add(createdFolder); } return resources; } global override List createMicrosoftTeam( List inputs, String runAs ) { List toReturn = new List(); for (Integer i = 0; i < inputs.size(); i++) { toReturn.add('testid-' + String.valueOf(i)); } return toReturn; } global override List createSharePointSite( List inputs, String runAs ) { List toReturn = new List(); for (Integer i = 0; i < inputs.size(); i++) { SharePointSite site = new SharePointSite(); site.id = 'test-siteid-' + String.valueOf(i); site.name = inputs[i].name; site.url = inputs[i].url; site.driveId = 'test-primarydriveid-' + String.valueOf(i); toReturn.add(site); } return toReturn; } global override List createDrive( List inputs, String runAs ) { List drives = new List(); for (Integer i = 0; i < inputs.size(); i++) { Drive d = new Drive(); d.id = 'testid-' + String.valueOf(i); drives.add(d); } return drives; } global override void createFoldersAsync( List inputs, String libraryId, String runAs ) { } global override List createLinks( List linkInputs, String library, String runAs ) { List links = new List(); for (Integer i = 0; i < linkInputs.size(); i++) { Link l = new Link(); l.id = 'testid-' + String.valueOf(i); l.url = 'http://test.url/' + String.valueOf(i); links.add(l); } return links; } global override List getFolderContents( List folders, String sortBy, String sortOrder, String runAs, String contentType ) { List lists = new List(); for (Integer i = 0; i < folders.size(); i++) { ResourceList rl = new ResourceList(); lists.add(rl); } return lists; } global override List createDatarooms( List dataroomInputs, String runAs ) { List datarooms = new List(); for (Integer i = 0; i < dataroomInputs.size(); i++) { Dataroom d = new Dataroom(); d.id = 'testid-' + String.valueOf(i); datarooms.add(d); } return datarooms; } global override void addToDataroom( List childrenInputs, String runAs ) { } global override List generateDocumentSync( List payloads, String runAs ) { List docs = new List(); for (Integer i = 0; i < payloads.size(); i++) { GeneratedDocument doc = new GeneratedDocument( 'test-name-' + String.valueOf(i), 'download-url-' + String.valueOf(i), 'test-content-version-id-' + String.valueOf(i) ); doc.file = new Resource( 'doc-resource-id' + String.valueOf(i), 'file', doc.name, 'library', payloads[i].destination.driveId ); docs.add(doc); } return docs; } global override void generateDocument( List payloads, String runAs ) { } global override List createFileRequests( List fileRequestInputs, String runAs ) { List frs = new List(); for (Integer i = 0; i < fileRequestInputs.size(); i++) { FileRequest fr = new FileRequest(); fr.id = 'testid-' + String.valueOf(i); frs.add(fr); } return frs; } global override void copyResources( List inputs, String library, String driveId, String runAs ) { } global override List> listAttachments( List parentIds, String runAs ) { List> result = new List>(); for (Integer i = 0; i < parentIds.size(); i++) { List attList = new List(); Attachment file = new Attachment(); file.id = 'testid-' + String.valueOf(i); file.resource = new Resource( 'testid-' + String.valueOf(i), 'file', 'name-' + String.valueOf(i), 'library', 'driveId-' + String.valueOf(i) ); Attachment folderAttachment = new Attachment(); folderAttachment.id = 'testfolderid-' + String.valueOf(i); folderAttachment.resource = new Resource( 'testfolderid-' + String.valueOf(i), 'folder', 'foldername-' + String.valueOf(i), 'library', 'driveId-' + String.valueOf(i) ); attList.add(file); attList.add(folderAttachment); result.add(attList); } return result; } global override void moveResources( List inputs, String library, String runAs ) { } global override void updatePermissions( List permissionInputs, String library, String runAs ) { } global override List getPreviewUrls( List resources, PreviewParams params, String library, String runAs ) { List urls = new List(); for (Integer i = 0; i < resources.size(); i++) { urls.add('https:/test.cloudfiles.io/' + String.valueOf(i)); //Check with Ankit on how preview urls look } return urls; } global override void deleteResources( List resourcesInput, String library, String runAs ) { } global override void updateResources( List inputs, String library, String runAs ) { } global override List searchByProperty( List inputs, String library, String runAs ) { List lists = new List(); for (Integer i = 0; i < inputs.size(); i++) { Types.SearchByPropertyInput input = inputs[i]; Resource resource = new Resource( 'searchedid-' + String.valueOf(i), 'file', 'searched-value', library, input.driveId ); ResourceList rl = new ResourceList(); rl.resources = new List{ resource }; lists.add(rl); } return lists; } global override void upload( List files, String runAs ) { } global override void createContentVersion( List files, String runAs ) { } global override void createContentVersionBatch( List inputs, String runAs ) { } global override void processDocument( List payloads, String runAs ) { } global override void splitDocument( List payloads, String runAs ) { } global override List queryDocument( List payloads, String runAs ) { List responses = new List(); for (Integer i = 0; i < payloads.size(); i++) { responses.add('ai-response-' + String.valueOf(i)); } return responses; } global override List mergeDocumentsSync( List payloads, String runAs ) { List docs = new List(); for (Integer i = 0; i < payloads.size(); i++) { Types.MergeDocumentsRequestInput input = payloads[i]; // Simulate a merged document with a file resource Resource file = new Resource( 'merged-file-id-' + String.valueOf(i), 'file', input.fileName != null ? input.fileName : 'merged-file-' + String.valueOf(i), 'library', 'driveId-' + String.valueOf(i) ); GeneratedDocument doc = new GeneratedDocument( input.fileName != null ? input.fileName : 'merged-file-' + String.valueOf(i), 'http://download.url/' + String.valueOf(i), file ); doc.contentVersionId = 'contentVersionId-' + String.valueOf(i); doc.previewUrl = 'http://preview.url/' + String.valueOf(i); docs.add(doc); } return docs; } } ``` --- ## Troubleshooting & FAQs --- # Installation & Setup https://help.cloudfiles.io/salesforce/installation-and-setup # Installation & Setup Step-by-step resources to help you set up and manage CloudFiles in your organization. > Kind: FAQ · Updated: Jul 4, 2026 Step-by-step resources to help you set up and manage CloudFiles in your organization. ## Why are various third party accesses asked during installation During installation, CloudFiles requests access to specific third-party domains to handle file operations. These include Amazon S3 for storage (*.amazonaws.com), CloudFiles APIs for processing (api.cloudfiles.io), file previews (salesforce.cloudfiles.io), and transfers to other storage platforms (streamapi.cloudfiles.io). All endpoints are security reviewed and comply with strict standards. Read More -> ## How to reset the Salesforce <> CloudFiles Connection To reset the Salesforce and CloudFiles connection, go to the CloudFiles web dashboard, open the “Integrations” tab, select “Salesforce,” and click “Disconnect.” The button will change to “Connect,” allowing you to link a different Salesforce account or re-establish the connection if it was broken. Read More -> ## Whitelist CloudFiles IP Addresses in Salesforce If your Salesforce has IP restrictions, you must whitelist CloudFiles IP addresses to maintain integration. Add these IPs (3.219.158.139, 3.234.13.156, 54.164.131.214) in Salesforce Network Access settings under Security. This ensures CloudFiles servers can connect without interruptions. Read More -> ## Setting Up Client Credentials Flow for CloudFiles Client Credentials Flow allows CloudFiles to connect to Salesforce using a secure server-to-server authentication method instead of user-based OAuth. This approach improves reliability by avoiding periodic reauthentication, reduces licensing costs by allowing the use of an Integration License and eliminates the need for manual user logins for the integration user. Read More -> --- # Why are various third party accesses asked during installation https://help.cloudfiles.io/salesforce/why-are-various-third-party-accesses-asked-during-installation # Why are various third party accesses asked during installation Learn about the secure installation process of CloudFiles, which involves third party accesses for file-related tasks such as uploading files to AWS S3 storage, using an external agent, previewing files in Salesforce, and facilitating file transfer to external storages. > Kind: FAQ · Updated: Jul 4, 2026 During installation, CloudFiles will ask for the following third party accesses - - *.amazonaws.com - This is needed to upload files to AWS s3 storage. This permission is only applicable if you're using s3 as storage platform. This URL is maintained by Amazon - api.cloudfiles.io - CloudFiles uses an external agent to do the heavy lifting of common file related tasks like upload, download etc. This API is security reviewed by Salesforce and other agencies. - salesforce.cloudfiles.io - A domain used to show preview of files within Salesforce. This is governed by same policy as api.cloudfiles.io - streamapi.cloudfiles.io - A domain used to facilitate file upload and download to external storages except AWS s3. This is governed by same policy as api.cloudfiles.io If you'd like to learn more about our compliances and security protocols, please visit out trust center at trust.cloudfiles.io. --- # How to reset the Salesforce <> CloudFiles Connection https://help.cloudfiles.io/salesforce/how-to-reset-the-salesforce-lessgreater-cloudfiles-connection # How to reset the Salesforce <> CloudFiles Connection Learn how to reset the connection between Salesforce and CloudFiles by accessing the CloudFiles web dashboard, disconnecting the existing Salesforce connection, and establishing a new one. > Kind: FAQ · Updated: Jul 4, 2026 Sometimes you may want to reset the connection between Salesforce & CloudFiles. For example, when you want to use a different Salesforce account for the connection, or if your existing connection is broken. Currently, the connection resetting is only available in our web dashboard. We're bringing it into Salesforce app soon. In the meatime, please follow the steps below to reset Salesforce & ClodFiles connection - - Go to CloudFiles web dashboard following the instructions here - How to access CloudFiles Admin Dashboard from Salesforce - Click on "Integrations" tab in the left sidebar ![](https://media.help.cloudfiles.io/faq-how-to-reset-the-salesforce-cloudfiles-connection-sf/01.png) - Click on "Salesforce" from the main pane ![](https://media.help.cloudfiles.io/faq-how-to-reset-the-salesforce-cloudfiles-connection-sf/02.png) - Click on "Disconnect" button fron the page that opens. This will disconnect the existing connection and the button will tn into "Connect" - Click on "Connect" button to re-connect the Salesforce account --- # Whitelist CloudFiles IP Addresses in Salesforce https://help.cloudfiles.io/salesforce/whitelist-cloudfiles-ip-addresses-in-salesforce # Whitelist CloudFiles IP Addresses in Salesforce If your Salesforce environment has IP restrictions in place, you need to whitelist CloudFiles' IP addresses to ensure seamless integration and functionality. > Kind: FAQ · Updated: Jul 4, 2026 If your Salesforce environment has IP restrictions in place, you need to whitelist CloudFiles' IP addresses to ensure seamless integration and functionality. This guide outlines the steps to whitelist these IPs. ### IP Addresses for Whitelisting CloudFiles operates across multiple regions. Please whitelist the dedicated IP addresses corresponding to the region your CloudFiles account is hosted in. If you are unsure which region applies, contact CloudFiles support. United States (US — N. Virginia) - 3.219.158.139 - 3.234.13.156 - 54.164.131.214 United Kingdom (UK — London) - 3.11.66.157 - 18.134.233.35 - 18.170.188.241 Europe (EU — Frankfurt) - 35.157.244.239 - 63.181.187.109 - 18.194.22.50 Australia (AU — Sydney) - 52.62.111.46 - 3.24.163.176 - 52.65.35.210 ### Steps to Whitelist IP Addresses in Salesforce - Log in to Salesforce: - Navigate to your Salesforce instance with appropriate admin credentials. - Access Network Access Settings: - Click on your profile icon in the top-right corner. - Select Setup. - In the Quick Find box, type Network Access. - Click on Network Access under Security. - Add Trusted IP Ranges: - Click New to add a new IP range. - Enter Start and End IP Address for each CloudFiles IP. - Example for IP 1: - Start IP Address: 3.219.158.139 - End IP Address: 3.219.158.139 - Repeat this step for the remaining IP addresses. - Optionally, add a Description (e.g., “CloudFiles IP Address”). - Save Your Changes: - Click Save to apply the new IP ranges. --- # Setting Up Client Credentials Flow for CloudFiles https://help.cloudfiles.io/salesforce/setting-up-client-credentials-flow-for-cloudfiles # Setting Up Client Credentials Flow for CloudFiles By default, CloudFiles uses OAuth2.0 with user-based authentication to connect with Salesforce, but switching to Client Credentials Flow resolves several limitations of that approach. > Kind: FAQ · Updated: Jul 4, 2026 ## Overview By default, CloudFiles uses OAuth2.0 with user-based authentication to connect with Salesforce. However, this approach has some limitations that can be resolved by switching to Client Credentials Flow. ## Why Use Client Credentials Flow? Client Credentials Flow offers several advantages over the default user-based authentication: - More Reliable Connection: The server-to-server connection doesn't require user reauthentication and won't be automatically disconnected by Salesforce after a period of time (typically 365 days). - No Manual Login Required: The integration user doesn't need to log into Salesforce.com directly, as their credentials are only used for API access. > **Note** — This setup must be completed in Salesforce before changing the authentication settings in CloudFiles. ## Setup Steps Follow these steps to enable Client Credentials Flow: - Go to Salesforce Setup - Log into your Salesforce org - Click on the gear icon and select "Setup" - Navigate to External Client Apps - In the Quick Find box, search for External Client App - Click on "External Client Apps" from the results - Select CloudFiles - Find and click on "CloudFiles" in the list of external client apps - Edit OAuth Policies - Navigate to the "OAuth Policies" section - Click the "Edit" button - Enable Client Credentials Flow - Check the box for "Enable Client Credentials Flow" - In the "Run As" field, specify the user who has permissions outline here: Minimum Permission for CloudFiles Integration User, or username of the admin/integration user who had connected CloudFiles-Salesforce integration via the External Client App auth. - Click "Save" ## Next Steps Once you've completed these steps in Salesforce, you can proceed to update your authentication settings in CloudFiles to use the Client Credentials Flow. A connected badge would appear after the connection via Client Credentials Flow has been established ![Salesforce Connection settings showing Client Credentials Flow selected with a Connected badge](https://media.help.cloudfiles.io/faq-setting-up-client-credentials-flow-for-cloudfiles-sf/client-credentials-connected-badge.png) This configuration is recommended for production environments as it provides a more stable and cost-effective integration between CloudFiles and Salesforce. --- # Configuration & Administration https://help.cloudfiles.io/salesforce/configuration-and-administration # Configuration & Administration Find guides to configure CloudFiles in Salesforce, manage licenses, set up permissions, access the admin dashboard, and integrate with external systems. > Kind: FAQ · Updated: Jul 4, 2026 Find guides to configure CloudFiles in Salesforce, manage licenses, set up permissions, access the admin dashboard, and integrate with external systems. ## CloudFiles Settings The CloudFiles Settings page in Salesforce provides access to account-level configurations and API keys. It includes options for managing authentication methods, controlling how CloudFiles connects with Salesforce, and configuring event delivery and retention settings. Read More -> ## External Client App vs Connected App for CloudFiles integration CloudFiles connects to Salesforce using OAuth 2.0, with access managed through either a Connected App or an External Client App depending on the organization’s setup. Both frameworks allow Salesforce to authorize CloudFiles and issue OAuth tokens for secure API access. Read More -> ## How do Experience Cloud Licenses work? CloudFiles supports all Salesforce Experience Cloud types, including Customer Community, Partner Relationship Management, and External Apps. Community licenses are counted per unique user login each month, not per assigned user. If you exceed your allocated licenses, logins will continue to work, but CloudFiles may contact you to upgrade if overages are frequent. Read More -> ## How to get CloudFiles API key To get your CloudFiles API key for using REST APIs, go to “Manage Subscription” from the CloudFiles app home page in Salesforce. In the billing portal, open the “Account” tab, then the “Security” section, and click “View API Key.” Read More -> --- # CloudFiles Settings https://help.cloudfiles.io/salesforce/cloudfiles-settings # CloudFiles Settings This article walks you through all the settings available in the CloudFiles Salesforce Settings page. > Kind: FAQ · Updated: Jul 4, 2026 ## Overview This article walks you through all the settings available in the CloudFiles Salesforce Settings page. This page consistes of several account level settings as well as the API Keys. ![](https://media.help.cloudfiles.io/faq-cloudfiles-settings-sf/01.png) ## Account Settings The Account settings page contains all configuration options related to your Salesforce connection. These settings determine how CloudFiles authenticates, how events are delivered to Salesforce, and how long event history is retained. ## Authentication Methods CloudFiles offers two authentication options for connecting with Salesforce: - OAuth 2.0 (User Authentication) - Client Credentials Flow (Server-to-Server Authentication) ### 1. OAuth 2.0 (User Authentication) OAuth 2.0 is the most common and easiest method to connect CloudFiles to your Salesforce org. You simply log in using your Salesforce username and password and grant permission for CloudFiles to access the org. Once connected, CloudFiles uses that user’s access to perform actions like creating records or reading data. This method works using Salesforce’s built-in app framework—Connected Apps or External Client Apps, depending on your Salesforce edition. Connected App vs External Client App (What’s the difference?) Salesforce historically used Connected Apps to manage OAuth access for external services. When you installed CloudFiles, a managed Connected App was included in the package so CloudFiles could authenticate through it. Salesforce later introduced External Client Apps as the modern version of Connected Apps for managed packages. Functionally, they do the same thing—they allow external applications like CloudFiles to connect and request access tokens—but External Client Apps offer: - Better long-term security management - Clearer controls for integration policies - A simplified interface for enabling flows like Client Credentials ### 2. Client Credentials Flow (Recommended for Production) The Client Credentials Flow creates a server-to-server connection between CloudFiles and Salesforce. Instead of relying on a human to log in, CloudFiles uses a Salesforce-issued client ID and client secret to authenticate automatically. In Salesforce Setup, an admin enables Client Credentials inside the CloudFiles External Client App and selects a Run As integration user. CloudFiles then performs all Salesforce operations under that integration user’s permissions. No user login or refresh token is required. > **Note** — The Client Credentials Flow requires a full Salesforce license to be assigned to the integration user. Please note that a Salesforce Integration User License is not compatible with this setup and will result in errors. While integration licenses are more affordable, they do not support the permissions required for CloudFiles to function correctly. This creates a stable, hands-off, long-term connection. ### When to Use OAuth vs Client Credentials Now that both methods are defined, here’s how to choose the right one: Use OAuth 2.0 when: - You are setting up CloudFiles for the first time - You are working in a sandbox or testing environment - It’s acceptable for the connection to depend on a specific Salesforce user OAuth is great for getting started quickly, but the connection can break if the user is deactivated, restes their password, or if the refresh token expires. Use Client Credentials Flow when: - You are configuring a production org - You want a stable, long-term connection that never requires re-login - You want to avoid dependencies on individual user accounts Client Credentials Flow is the recommended approach for all production environments because it is more reliable, more secure, and easier to maintain. ## Event Mode CloudFiles sends events to Salesforce whenever important actions occur (folder creation, file uploads, etc.). You can choose how these events are delivered: ### 1. Custom Object Mode (Preferred) In this mode, CloudFiles creates a CloudFiles Event record inside Salesforce for each event. This is the recommended option for most users because: - It works directly with Record-Triggered Flows - Events are easy to inspect and debug - Event history is fully visible inside Salesforce This mode is simple and reliable, which is why it’s the default. ### 2. Platform Event Mode Platform Events are real-time event messages published to Salesforce’s event bus. They are useful for advanced architectures or high-volume streaming scenarios. However: - They are harder to debug - Missed events cannot be inspected later - You must configure Flow or Apex subscribers ## Event Retention Policy If you're using Custom Object mode, CloudFiles stores event records in Salesforce. The Event Retention Days setting controls how long these records are kept before CloudFiles automatically deletes them. The Default value is 7 days however you can increase the number to retain longer history or decrease it to save Salesforce storage . ## API Keys ![](https://media.help.cloudfiles.io/faq-cloudfiles-settings-sf/02.png) The API Keys section provides two important credentials used for advanced or external integrations with CloudFiles: the Webhook Secret Key and the CloudFiles API Key. The Webhook Secret Key is used to verify incoming webhook requests that are sent to CloudFiles from external systems such as SharePoint, OneDrive, or custom automation workflows. Whenever an external service notifies CloudFiles about a file event, it must include this secret key in the request header so CloudFiles can confirm the request is legitimate. This ensures that only trusted systems can trigger CloudFiles events. The CloudFiles API Key, on the other hand, is used when making authenticated requests to the CloudFiles REST API from custom servers or backend applications. Developers rely on this key when building programmatic file uploads, generating CloudFiles links through external services, or integrating CloudFiles with other platforms outside Salesforce. --- # External Client App vs Connected App for CloudFiles integration https://help.cloudfiles.io/salesforce/external-client-app-vs-connected-app-for-cloudfiles-integration # External Client App vs Connected App for CloudFiles integration CloudFiles connects to Salesforce using OAuth 2.0, and OAuth access is managed by either a Connected App or an External Client App depending on your org setup. > Kind: FAQ · Updated: Jul 4, 2026 ## Overview CloudFiles connects to Salesforce using OAuth 2.0. In Salesforce, OAuth access is managed by either a Connected App or an External Client App, depending on your org setup and how the integration is packaged. ## How Salesforce Manages OAuth Access Salesforce historically used Connected Apps, and later introduced External Client Apps as the modern path for managed packages; functionally both enable OAuth token issuance for CloudFiles. A Connected App is Salesforce’s long-standing framework for integrating third-party applications using standards like OAuth, SAML, and OpenID Connect. An External Client App is Salesforce’s newer framework for authorizing external integrations (also via OAuth), and Salesforce documentation now explicitly describes REST API authorization as working through either external client apps or connected apps. ## When to use ECA vs CA Use the External Client App (recommended) Choose an External Client App when you want the most stable, production-ready setup for CloudFiles: - It supports Client Credentials Flow, which is ideal for server-to-server authentication and does not rely on an individual user session. - It aligns with Salesforce’s newer approach to managing third-party OAuth integrations. - It avoids older or less secure legacy flows that Salesforce is gradually moving away from. Use a Connected App (only if needed) A Connected App is mainly useful in specific legacy scenarios: - Your org already uses the existing managed Connected App from an older CloudFiles setup and everything is working. - Certain Salesforce features or internal governance processes in your org still depend on Connected Apps. - Your admin workflow requires creating Connected Apps, even though Salesforce may manage that through External Client App settings. --- # How do Experience Cloud Licenses work? https://help.cloudfiles.io/salesforce/how-do-experience-cloud-licenses-work # How do Experience Cloud Licenses work? CloudFiles community licenses for Salesforce Experience Cloud are consumed per unique login per month, not assigned to individual users. > Kind: FAQ · Updated: Jul 4, 2026 CloudFiles fully supports Salesforce Experience Cloud. Based on your contract, you will be allocated a certain number of CloudFiles community licenses per month. CloudFiles community licenses support all Salesforce Experience Cloud types: Customer Community, Customer Community Plus, Partner Relationship Management, and External Apps. CloudFiles community licenses do not need to be assigned to individual community users. They are consumed based on each unique login per month. For example, if a community user logs in once or multiple times in a month, they will consume only one CloudFiles community license. If there are more unique logins in a month than the CloudFiles community licenses included in your plan, the logins will still work. The CloudFiles team will reach out to your billing contact for an upgrade if the logins are exceeded significantly and consistently. --- # How to get CloudFiles API key https://help.cloudfiles.io/salesforce/how-to-get-cloudfiles-api-key # How to get CloudFiles API key Follow these steps to get your API key for using CloudFiles Rest APIs. > Kind: FAQ · Updated: Jul 4, 2026 Most of CloudFiles automation features can be accessed using the Flow Actions or CloudFiles Apex client. However, at times, you might want to use CloudFiles Rest APIs. To use the Rest API, please follow the instructions below to get your API key - - Click on "Manage Subscription" from the app home page in Salesforce ![](https://media.help.cloudfiles.io/faq-how-to-get-cloudfiles-api-key-sf/01.png) - Click on "Account" tab in the left sidebar, and then "Security" tab in the main pane. Then click "View API Key" ![](https://media.help.cloudfiles.io/faq-how-to-get-cloudfiles-api-key-sf/02.png) - Happy integrating! --- # Minimum Permissions for the CloudFiles Integration/API User https://help.cloudfiles.io/salesforce/minimum-permissions-for-cloudfiles-integration-user # Minimum Permissions for the CloudFiles Integration/API User The Salesforce↔CloudFiles integration/API user needs a specific set of System Permissions plus access to the CloudFiles package's Apex classes — this breaks down what's needed and why, grouped by the Salesforce UI category each permission lives in. It also documents the Object CRUD and Field-Level Security the integration's permission set grants on the objects it uses internally. > Kind: FAQ · Updated: Aug 11, 2026 ## Overview This page defines the minimum permission set required by the integration/API user, the dedicated Salesforce account, the Salesforce↔CloudFiles integration authenticates and runs as. It also highlights the reasoning behind why each one is needed. > This is distinct from the access human end users need to work with CloudFiles day to day, which is documented based on the product (Document Management, Document Generation, Document AI). The permissions below are the baseline for the dedicated integration/API user account only. ## System Permissions On the Salesforce Permission Set / Profile UI, these five permissions all live under the System Permissions category. | Permission (Salesforce UI label) | Why it's needed | |---|---| | API Enabled (ApiEnabled) | This is the standard permission required for any external system to access Salesforce data through the API at all. Without it, API calls from the integration are rejected outright, before any other permission or object/field access is even considered. | | Modify Metadata Through Metadata API Functions (ModifyMetadata) | Needed to build the customer-side flows and automations that CloudFiles sets up as part of your specific implementation. | | Use Any API Client Application (UseAnyApiAuth) | Allows the integration user to authenticate via the API without being restricted to a specific, pre-whitelisted connected/client application — necessary because the integration authenticates as its own API client. | | View Roles and Role Hierarchy (ViewRoles) | Automatically bundled in by Salesforce when Modify Metadata Through Metadata API Functions is granted — it comes along as a dependency, not something you enable separately. | | View Setup and Configuration (ViewSetup) | Automatically bundled in by Salesforce when Modify Metadata Through Metadata API Functions is granted — it comes along as a dependency, not something you enable separately. | ## App Permissions On the Salesforce Permission Set / Profile UI, these three permissions live under the App Permissions category, in the Flow and Flow Orchestration section — they're needed so CloudFiles can build, activate, and debug the customer-specific Flows that are set up as part of your implementation. | Permission (Salesforce UI label) | Why it's needed | |---|---| | Enable System Mode Flow Activation (ActivateSystemModeFlows) | Required to activate a Flow version that's configured to run in system context. Several of the Flows CloudFiles builds as part of your implementation run this way, so activating them needs this permission in addition to the general ability to activate Flows. | | Manage Flow (ManageInteraction) | Lets the integration/API user open, edit, and run a Flow regardless of whether it's currently active — needed while a customer-specific Flow is still being built or debugged, before it's ready to activate. | | Run Flows (RunFlow) | Lets the integration/API user execute active Flows directly — needed to run and validate the customer-specific Flows CloudFiles builds as part of your implementation. | ## Apex Class Access Separately, under the Apex Class Access category, the integration/API user needs access to essentially all of the CloudFiles managed package's Apex classes — these are the controllers that power the integration, so the account needs to be able to invoke them. ## Object Level Access On the Salesforce Permission Set UI, under Object Permissions, the integration/API user's permission set grants Object CRUD on the two objects the integration uses internally to track and process events. | Object | Access | |---|---| | cldfs__CloudFilesEvent__c (custom object) | Create, Read, Edit, Delete, View All Records, Modify All Records — full object-level access. | | cldfs__CloudFiles_Event__e (platform event) | Create, Read only. | For organizations who are using the Document AI product, their integration user will need access on one additional object listed below: | Object | Access | |---|---| | cldfs__CloudFiles_DocAI_Run__c (custom object) | Create, Read, Edit, Delete, View All Records, Modify All Records — full object-level access. | Under Field-Level Security, the permission set also grants Read and Edit access on the following fields of cldfs__CloudFilesEvent__c, which the integration reads from and writes to as it processes events: | Field | Access | |---|---| | cldfs__CloudFilesEvent__c.cldfs__Data__c | Read, Edit | | cldfs__CloudFilesEvent__c.cldfs__Object_Type__c | Read, Edit | | cldfs__CloudFilesEvent__c.cldfs__Request_Id__c | Read, Edit | | cldfs__CloudFilesEvent__c.cldfs__Type__c | Read, Edit | > **Important** — If your use case attaches files/folders to other Salesforce objects, or drives automations off other objects' fields, the org admin still needs to grant that access separately. --- # Storage & Integration https://help.cloudfiles.io/salesforce/storage-and-integration # Storage & Integration Find solutions for storage-specific issues and integration troubleshooting covering SharePoint, AWS S3, and Azure Blob connections with Salesforce. > Kind: FAQ · Updated: Jul 4, 2026 Find solutions for storage-specific issues and integration troubleshooting. This section covers common problems, setup guidance, and tips for managing connections between Salesforce and external storage platforms like SharePoint, Google Drive, and others. ## How are Cloud Drive permissions handled by the CloudFiles? CloudFiles’ Mirror Drive architecture respects your cloud storage permissions by requiring users to log in with their own credentials before accessing files. This ensures that Content Library and Connected Folder widgets in Salesforce only display files and folders each user is allowed to see, preventing unauthorized access by design. Read More -> ## SHAREPOINT ## I am unable to reconnect the Integration User ## I cannot see any SharePoint sites in the Content Library Tab If you can’t see any SharePoint sites, it may be because you haven’t followed the site, you’re logged in with the wrong account, you don’t have the right permissions, or you lack access. Following the site, checking your login, adding share permissions, and confirming access usually resolve this. Read More -> ## Understanding SharePoint Permissions in CloudFiles CloudFiles requires permissions in SharePoint to connect with Salesforce, including reading and managing files, maintaining access for automations, reading user profiles for single sign-on, and creating teams if needed. These permissions only apply to data the signed-in user can access. Admin consent may be required based on your security settings. You can limit access by using an integration user with restricted permissions. Your files stay in your own storage — CloudFiles never re-hosts them. CloudFiles is independently audited for SOC 2 Type II, certified to ISO 27001, and compliant with HIPAA and GDPR. Read More -> ## Why do I see more sites in Salesforce which I generally don't see in SharePoint? When using CloudFiles in Salesforce, you may see more SharePoint sites than usual because the API shows all sites you have access to, including hidden ones. This doesn’t grant new permissions—it just lists everything you’re already allowed to see. To limit which sites appear, you can register only the specific sites you want displayed. Read More -> ## AWS S3 ## How to integrate AWS S3 bucket with CloudFiles? Step-by-step guide to integrate your AWS S3 bucket with CloudFiles using an AWS CloudFormation template. Covers prerequisites, creating a CloudFormation stack, retrieving the Bucket Name and Role ARN, and entering these details in CloudFiles to complete the connection and start managing S3 files from Salesforce. Read More -> ## Azure Blob ## How to integrate Azure Blob storage with CloudFiles? Step-by-step guide to connect Azure Blob Storage with CloudFiles. Covers adding the CloudFiles app in Azure, creating and configuring storage accounts and containers, setting permissions, and enabling auto-sync to keep your files updated in real time within Salesforce. Read More -> ## How to enable auto-sync on Azure Blob Guide to set up auto-sync between Azure Blob Storage and CloudFiles. Includes creating an event subscription, configuring webhooks, setting delivery retries, adding filters, and connecting your container so new or deleted files automatically sync with Salesforce. Read More -> --- # How are Cloud Drive permissions handled by the CloudFiles https://help.cloudfiles.io/salesforce/how-are-cloud-drive-permissions-handled-by-the-cloudfiles # How are Cloud Drive permissions handled by the CloudFiles CloudFiles is a powerful tool that seamlessly syncs cloud drives with Salesforce, ensuring that users only see the files and folders they are authorized to access. > Kind: FAQ · Updated: Jul 4, 2026 CloudFiles has been designed in a way that it inherently respects the cloud drive permissions (e.g. SharePoint folder permissions set by an admin). In this article we talk about the mirror drive architecture and how it works with Salesforce to respect the storage permissions. Before we delve into details, it's worth becoming familiar with some terminology. Following are of special importance. - Cloud Drive- External cloud storage that you are trying to connect to Salesforce. The cloud drive can be SharePoint, OneDrive, Google Drive, Box, Dropbox etc... - Mirror Drive - This is a feature that enables a seamless 2-way sync between your cloud drive and your Salesforce records (wherever in Salesforce you are trying to access these files or folders). - Content Library- This refers to a CloudFiles UI component that is available as a dialog or a tab at various places. This shows the external cloud drive to the user on Salesforce. - Connected Folder - This is a specific widget that can be inserted on any record to manage the contents of external folders from Salesforce. E.g. see a list of files from a folder in SharePoint on a certain Salesforce record. - Permissions - For the scope of this article, this strictly means cloud drive permissions. E.g. SharePoint permissions that an IT admin has set. The article is divided into following sections - - Mirror Drive Architecture - We explain the one-time user-level authentication required for connecting to cloud drives and how it is used to to fetch only a restricted set of files when accessing the cloud storage. - Cloud Drive access in Content Library - In this section, we exemplify how the above works in context of accessing content library from Salesforce records and only lets users pick files only they have access to. - Connected Folder access on Salesforce record - Here we exemplify how the architecture prevents unauthorized access to folders that are connected to Salesforce records and may be visible to multiple users. ## Mirror Drive Architecture The CloudFiles Mirror Drive feature enables a 2-way sync between the content library you see in Salesforce and your external cloud drive. It is built in such a way that whenever a Salesforce user tries to access any cloud drive, CloudFiles first ensures they are logged into that cloud drive using their own credentials. If the user is not logged in, they are directed to a new tab where the standard login process of the respective cloud drive is performed. E.g., in the GIF below, the user is trying to access the CloudFiles content library from the CloudFiles App Launcher. In order to access SharePoint, the user must first login to SharePoint using their own credentials. Only then the SharePoint sites, files and folders become visible to the user. ![](https://media.help.cloudfiles.io/faq-how-are-cloud-drive-permissions-handled-by-the-cloudfiles-sf/01.gif) ## Content Library Access on Salesforce Records The CloudFiles Content Library is a component that often appears either in a tab or in a dialog when the user wishes to pick files from the overall library. E.g. if the user needs to link a folder to the folder connect widget from OneDrive, they would pick it using the content library dialog shown above. In the last section we had mentioned that whenever the user accesses this library the first time, they must login to their cloud drives. This lets us fetch file metadata & details using user's own credentials, preventing any unauthorized access by design. In case user does not have access to certain resources in cloud drives (e.g. folders in google drive, sites in SharePoint), the content library won't show them. Thus the user will never be able to pick files or folders from them. ## Connected Folder Access on Salesforce Records Another use-case of this permission handling can be seen in Connected Folder Access on the widget. A use-case is possible where 2 users have access to the same Salesforce opportunity. However only one has access to the respective SharePoint folder. So the other user should not be able to see the folder when they view the Salesforce record. The Folder Connect Widget handles this use-case by showing an error message as shown below. This lets the unauthorized user know that they don't have access to this content. ![](https://media.help.cloudfiles.io/faq-how-are-cloud-drive-permissions-handled-by-the-cloudfiles-sf/02.png) Note that the name of the connected folder may still be available for the other user to read since this is stored as metadata in Salesforce by the CloudFiles app for smooth functioning. --- # SharePoint - FAQs https://help.cloudfiles.io/salesforce/sharepoint-faqs # SharePoint - FAQs Find answers to common questions about using SharePoint Storage with CloudFiles. > Kind: FAQ · Updated: Jul 4, 2026 Find answers to common questions about using SharePoint Storage with CloudFiles. ## SharePoint Connection Methods: Integration User vs Service Principal When you connect SharePoint to CloudFiles for automations, you choose how CloudFiles authenticates to Microsoft: as an integration user or as a service principal. This article explains how each method works, how they differ, and how to pick the right one. Read More -> ## I am unable to reconnect the Integration User In some cases, administrators may see a “Connection Expired” warning for the SharePoint integration and be unable to reconnect the integration user. When attempting to reconnect, the Microsoft authentication popup may fail to open or close immediately, leaving the integration disconnected and causing related automation actions to fail. Read More -> ## I cannot see any SharePoint sites in Content Library Tab If you can’t see any SharePoint sites in the Content Library tab, it may be because you haven’t followed the site in SharePoint, you’re logged in with the wrong account, you don’t have the right permissions, or you lack access to folders or sites. Following the site, confirming your SharePoint login, adding explicit share permissions, and checking your access usually resolve this issue. Read More -> ## SharePoint Permissions in CloudFiles CloudFiles requires permissions in SharePoint to connect with Salesforce, including reading and managing files, maintaining access for automations, reading user profiles for single sign-on, and creating teams if needed. These permissions only apply to data the signed-in user can access. Admin consent may be required based on your security settings. You can limit access by using an integration user with restricted permissions. Your files stay in your own storage — CloudFiles never re-hosts them. CloudFiles is independently audited for SOC 2 Type II, certified to ISO 27001, and compliant with HIPAA and GDPR. Read More -> ## Restricting CloudFiles Application Access to Specific SharePoint Sites By default, CloudFiles can read and write files across every SharePoint site in your tenant. You can restrict it to only the sites you choose by removing its broad, tenant-wide Microsoft Graph permissions and granting it access to specific sites one at a time with a short PowerShell script. Read More -> ## Why do I see more sites in Salesforce which I generally don't see in SharePoint? When using CloudFiles in Salesforce, you may see more SharePoint sites than usual because the API shows all sites you have access to, including hidden ones. This doesn’t grant new permissions—it just lists everything you’re already allowed to see. To limit which sites appear, you can register only the specific sites you want displayed. Read More -> --- # SharePoint Connection Methods: Integration User vs Service Principal https://help.cloudfiles.io/salesforce/sharepoint-connection-method # SharePoint Connection Methods: Integration User vs Service Principal How CloudFiles authenticates an account-level SharePoint connection for automations, comparing the integration user and service principal methods and how they differ. > Kind: FAQ · Updated: Jul 24, 2026 When you connect SharePoint to CloudFiles for automations, you choose how CloudFiles authenticates to Microsoft. CloudFiles supports two methods: an integration user and a service principal. This article explains how each one works, how they differ, and how to pick the right one. Service Principal is CloudFiles' least-access option for automations: no human account, no shared credential, and access can be scoped to specific sites. ## The core difference When CloudFiles runs an automation that connects to SharePoint, no person is signed in to authorize it, so something has to prove to Microsoft that CloudFiles is allowed to act on your files. The two methods take opposite approaches: - Integration user: CloudFiles borrows a real, signed-in Microsoft 365 account. - Service principal: CloudFiles acts as its own application identity in your Microsoft Entra directory, with no person behind it. That single choice, a borrowed user versus CloudFiles' own application identity, drives everything else: whether a licensed seat is consumed, whether the connection breaks when staff leave or security policies tighten, who has to set it up, and how actions appear in your audit logs. ## Integration user An integration user is a real, licensed Microsoft 365 account. An admin signs it in once from the Libraries page under the SharePoint section (the "Integration user" option), and every account-level automation then runs under that account and inherits its SharePoint permissions. Because a person's account sits behind the connection: - It consumes a licensed Microsoft 365 seat. - MFA, Conditional Access, or a forced password change on that account can break automations, since they depend on that account's sign-in staying valid. - Offboarding the person stops every automation running under the account. - Automated actions are logged against a human in your audit trail. It is the quicker option to set up: any admin who can sign in to the account can connect it, with no Microsoft directory administrator involved. ## Service principal (app-only): the least-privilege option With a service principal, CloudFiles authenticates as its own application identity using the OAuth 2.0 client-credentials flow. A Microsoft Global Administrator grants the CloudFiles application consent once, which creates a service principal (the local record of the CloudFiles application) inside your own Microsoft Entra (Azure AD) directory. From then on there is no signed-in user, no password, and no token tied to a person, so none of the integration-user constraints above apply. How it works in practice: - CloudFiles authenticates with its own certificate (a signed JWT client assertion) that it holds and rotates. You never create an Azure app registration, generate a client secret, or paste and rotate credentials. This also matches a Microsoft requirement: SharePoint Online rejects app-only tokens minted with a client secret for the SharePoint REST resource, so certificate-based authentication is the supported path for real SharePoint operations. - Access tokens are short-lived (on the order of an hour) and re-issued automatically, so no long-lived credential sits in your environment. - One consent covers both Microsoft Graph and the SharePoint REST resource, so the separate SharePoint REST API authorization step that older setups require goes away. - The identity, its permissions, and its consent all appear in the Enterprise Applications area of Microsoft Entra, where your admins can audit it, govern it, or revoke it like any other application. The main setup consideration is that consent has to come from a Global Administrator, who is often not the same person as your Salesforce admin. CloudFiles generates the admin-consent link for your tenant so the Salesforce admin can pass it to IT to approve. See also: for the step-by-step setup of each method on the SharePoint tab, see the SharePoint configuration guide. Combine this with Sites.Selected to scope access to specific sites. See Restricting CloudFiles Application Access to Specific SharePoint Sites. --- # I am unable to reconnect the Integration User https://help.cloudfiles.io/salesforce/i-am-unable-to-reconnect-the-integration-user # I am unable to reconnect the Integration User Administrators unable to reconnect the SharePoint integration user (Microsoft popup fails to open or closes immediately) due to cached Microsoft authentication sessions in the browser, and how to force a clean login flow to fix it. > Kind: FAQ · Updated: Jul 4, 2026 ## What is the issue? In some cases, administrators may see a “Connection Expired” warning in Document Management → Libraries → SharePoint and attempt to reconnect the integration user. When clicking Reconnect, one of the following behaviors may occur: - The Microsoft authentication popup does not open at all, or - The popup opens briefly and then immediately closes, returning the user to the same page. Therby, even after clicking Reconnect, the integration user remains disconnected and the warning persists. As a result, automation actions that rely on the SharePoint integration continue to fail. ![](https://media.help.cloudfiles.io/faq-i-am-unable-to-reconnect-the-integration-user-sf/01.png) ## Why does it happen? This issue is typically caused by cached Microsoft authentication sessions in the browser. If a previously authenticated Microsoft account is stored in the browser cache, the OAuth flow may silently reuse that session and immediately redirect back to CloudFiles without completing a fresh consent or token exchange. As a result, CloudFiles does not receive updated authentication details, even though the Microsoft login page briefly appears. This behavior is controlled by Microsoft’s authentication flow and is not related to CloudFiles licenses or permissions. ## How to fix this issue? To force a clean authentication flow and successfully reconnect the integration user, perform the reconnection using any one of the following approaches: - Open the page in an incognito/private browsing window, or - Use a different browser, or - Clear your browser cache and cookies, then retry. Using any of these approaches, you should be able to complete the Microsoft login and consent flow when prompted, and reconnect the integration user successfully. --- # I cannot see any SharePoint sites in Content Library Tab https://help.cloudfiles.io/salesforce/i-cannot-see-any-sharepoint-sites-in-content-library-tab # I cannot see any SharePoint sites in Content Library Tab If you can't see any SharePoint sites in the Content Library tab of Salesforce, this article lists 4 ways to resolve the underlying SharePoint configuration issue: following the site, confirming the correct SharePoint login, adding explicit share permissions, and checking folder/site access. > Kind: FAQ · Updated: Aug 7, 2026 If you're unable to see any SharePoint sites in the Content Library as shown in the below image, there might be a few reasons for this issue. This article lists down 4 ways by which you can solve this issue. ![Content Library tab showing the SharePoint "All sites" view empty, with a "Please add your sites" message](https://media.help.cloudfiles.io/faq-i-cannot-see-any-sharepoint-sites-in-content-library-tab-sf/empty-sites-state.png) Let us look into these options - ## Follow the SharePoint Site Go to SharePoint and follow the site. Come back to Salesforce and use the followed sites from the dropdown. Followed sites usually work better than All Sites APIs provided by SharePoint. ![](https://media.help.cloudfiles.io/faq-i-cannot-see-any-sharepoint-sites-in-content-library-tab-sf/follow-sp-site.gif) ## Ensure correct SharePoint Login Make sure you are logged in CloudFiles with the correct SharePoint login. Consider opening Salesforce in incognito mode, then navigate to CloudFiles > Content Library > Log out from SharePoint and log back in. This ensures that you are logged in with the correct SharePoint user. Additionally, you can try opening SharePoint in a new tab and ensure that you are logged in with the correct SharePoint user. Sometimes an O365 user gets logged in instead of the correct SharePoint user, which might create issues. ![](https://media.help.cloudfiles.io/faq-i-cannot-see-any-sharepoint-sites-in-content-library-tab-sf/incognito-login.gif) ## Add Share Permissions for Desired User Sometimes creating a folder from SharePoint and explicitly adding share permissions for the desired user will solve the issue. Make sure you have at least 1 folder inside of the site and try adding share permissions explicitly for your user into it. ![](https://media.help.cloudfiles.io/faq-i-cannot-see-any-sharepoint-sites-in-content-library-tab-sf/make-folder.gif) ## Ensure Access to Folders / Sites Make sure you have access to the folders / sites in SharePoint. Open the SharePoint App and make sure you are seeing SharePoint folders & sites there. In case the problem persists, please chat with us or write to us. We will get back to you as soon as possible. --- # SharePoint Permissions https://help.cloudfiles.io/salesforce/sharepoint-permissions # SharePoint Permissions Explains why CloudFiles requests OAuth-based SharePoint permissions, what each permission scope means, how to restrict access via an integration user, and how admin/user consent settings work. > Kind: FAQ · Updated: Jul 4, 2026 ## Overview CloudFiles is a Salesforce app for document management in Salesforce. CloudFiles provides functionality to connect Salesforce with SharePoint, and helps move files between the two systems. CloudFiles needs API access to both these systems. The access is requested using OAuth 2.0 protocol which is the recommended approach by both Salesforce & SharePoint. Using OAuth, CloudFiles never has to ask for user’s username/password to any system. It sends the user to the provider’s website(Salesforce & SharePoint), asks for an approval for API access. Once user approves this request, the provider system gives CloudFiles with an access token, that can be used to access resources on user’s behalf using the API. ## What accesses does CloudFiles need in SharePoint ![](https://media.help.cloudfiles.io/faq-sharepoint-permissions-sf/01.png) - Maintain access to data you have given it access to Allows the app to see and update the data you gave it access to, even when users are not currently using the app. This does not give the app any additional permissions. This is a permission requested to access your data in CloudFiles. Explanation - Since CloudFiles makes API requests to SharePoint on demand(as part of automated processes), even when user is not directly interacting with CloudFiles, this permission is requested. To revoke CloudFiles’ access, users can disconnect SharePoint from CloudFiles dashboard, or from Microsoft page - Edit or delete items in all site collections Allows the application to edit or delete documents and list items in all site collections on behalf of the signed-in user. This is a permission requested to access your data in CloudFiles. Explanation - This permission is required for CloudFiles to provide full CRUD capabilities(Create, Read, Update & Delete) to its users. This permission is only scoped to the sites & folders that the user has access to - Sign in and read user profile Allows users to sign-in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users. This is a permission requested to access your data in CloudFiles. Explanation - With this permission, CloudFiles can get user’s email, as well as some company information like company name. This enables CloudFiles to provide SSO(single sign-on) functionality. Users don’t have to setup a password for CloudFiles, CloudFiles can verify user’s identity by asking Microsoft(using API access) and make them sign in to CloudFiles - Have full access to all files user can access Allows the app to read, create, update and delete all files the signed-in user can access. This is a permission requested to access your data in CloudFiles. Explanation - Same as 2, except this one is specific to files & folders and not SharePoint sites & lists - Read the names and descriptions of teams Read the names and descriptions of teams, on behalf of the signed-in user. This is a permission requested to access your data in CloudFiles. Explanation - This permissions is requested for Microsoft teams functionality. This is read only access to the metadata of teams that user has access to - Create teams Allows the app to create teams on behalf of the signed-in user. This is a permission requested to access your data in CloudFiles. Explanation - This permission allows CloudFiles to create new teams on behalf of user Every permission above is delegated: SharePoint grants CloudFiles only what the connecting identity already has, the signed-in user for interactive use, or a Service Principal for automations. None of it is a standing, tenant-wide grant. The next section explains how to scope that connecting identity down to specific sites. ## How to restrict CloudFiles’ access to specific sites or folders All the permissions mentioned above only let CloudFiles reach data the connecting identity already has access to, so the identity you connect with is what actually controls the blast radius. - Least-access, recommended: for end users, each person connects their own SharePoint account, so CloudFiles never exceeds what they can already see. For automations, connect with a Service Principal and scope it to specific sites via Sites.Selected. See the step-by-step guide. - Integration user: connecting a shared Microsoft 365 account scoped to specific folders also works, but that account consumes a licensed seat, can break on MFA/offboarding, and logs actions against a human rather than an app identity. See Integration User vs Service Principal before choosing this path. ## Why is an Admin consent being required Based on your SharePoint security settings, sometimes security policy doesn’t allow it’s SharePoint users to grant access to 3rd party apps like CloudFiles. When an admin gives consent using the approval link, then only, users can approve 3rd party apps to access their SharePoint data using APIs. When admin is consenting to this, they’re not allowing CloudFiles to access their own SharePoint data, they are only approving the fact that users in their SharePoint can ## Alternative Approach If you don’t want to consent to permissions as admin, you can also allow users to consent to permissions themselves, by updating settings here - https://portal.azure.com/#view/Microsoft_AAD_IAM/ConsentPoliciesMenuBlade/~/UserSettings Here, Please select the 3rd option - “Allow user consent for apps” ![](https://media.help.cloudfiles.io/faq-sharepoint-permissions-sf/02.png) ## More about CloudFiles Data privacy policy & security CloudFiles has a very robust data privacy policy. It only accesses SharePoint resources on need basis. This data is encrypted at rest and in transit, and your files stay in your own storage — CloudFiles never re-hosts them. CloudFiles is only a facilitator between Salesforce & SharePoint. This is covered in detail in our Data Processing Agreement CloudFiles is also independently audited for SOC 2 Type II, certified to ISO 27001, and compliant with HIPAA and GDPR. CloudFiles is security reviewed by Salesforce and then only approved to be listed in Salesforce app store You can access all security & compliance related policies on the CloudFiles Trust Portal For any questions, please reach out to security@cloudfiles.io --- # SharePoint Permissions Reference https://help.cloudfiles.io/salesforce/sharepoint-permissions-reference # SharePoint Permissions Reference Every SharePoint permission CloudFiles can request, delegated and application-only, listed side by side with what each grants, why CloudFiles asks for it, and which ones are tenant-wide by default. > Kind: Guide · Updated: Sep 11, 2026 ## Overview CloudFiles connects to SharePoint two ways: a delegated per-user connection (an individual user, or an admin-connected integration user) and an application-only Service Principal, typically used for automations. Each requests a different, specific set of Microsoft Graph permissions. This page lists exactly what each one requests, in plain terms and by name, in one place, rather than spread across the setup and troubleshooting docs. > Least-access is not automatic on the Service Principal path. CloudFiles' application registration holds tenant-wide permissions by default. Scoping it to specific sites is a deliberate, opt-in step, covered under Application permissions below. ## Delegated permissions (per-user OAuth) When a person connects their own SharePoint account, or an admin connects a shared integration user, CloudFiles requests these delegated permissions. Each is scoped to what that signed-in identity already has access to in SharePoint, not a separate, broader grant. | Permission (as shown in consent) | What it grants | Why CloudFiles requests it | |---|---|---| | Maintain access to data you have given it access to | Keeps working in the background without the signed-in user present. | CloudFiles makes API calls to SharePoint on demand, as part of automated processes, even when the user isn't actively using the app. | | Edit or delete items in all site collectionsUnderlying permission: Sites.ReadWrite.All (Delegated) | Create, edit, and delete SharePoint list items and documents. | Powers file and folder create, rename, move, and delete actions from Salesforce. Scoped to sites and folders the signed-in user can already reach. | | Sign in and read user profile | Basic profile info and sign-in. | Provides single sign-on: CloudFiles verifies identity through Microsoft, so there's no separate CloudFiles password to set up. | | Have full access to all files user can access | Read, write, and delete files and folders the user can already see. | The file-level counterpart to the site/list permission above, needed for file-level operations specifically. | | Read the names and descriptions of teams | Read-only access to Microsoft Teams metadata. | Powers the Microsoft Teams integration feature. | | Create teams | Create new Microsoft Teams on behalf of the signed-in user. | Powers the "create a Team" automation feature. | See the full explanation, including why an admin consent step is sometimes required, on the SharePoint Permissions page. ## Application permissions (Service Principal) For automations, CloudFiles authenticates as its own application identity, a Service Principal, rather than a signed-in person. A Global Administrator grants consent once; CloudFiles' application registration then holds these Microsoft Graph application permissions: | Permission | Default scope | Effect | |---|---|---| | Sites.Selected | Nothing, until an admin grants specific sites | Lets CloudFiles reach only the sites an admin explicitly grants, one at a time, using a one-time PowerShell command per site. | | Sites.Manage.All | Tenant-wide | Create, edit, or delete lists and items in every site collection in the tenant. | | Files.ReadWrite.All | Tenant-wide, always | Read, create, update, and delete all files in every site collection, independent of Sites.Selected. | > CloudFiles' application registration holds all three by default. Sites.Selected alone does not restrict anything: Sites.Manage.All and Files.ReadWrite.All must both be removed in the Microsoft Entra admin center before access is actually limited to specific sites. See Restricting CloudFiles Application Access to Specific SharePoint Sites for the exact steps. ## Which one is least-access Neither path is least-access by default. The delegated path always mirrors whatever the connecting person, or integration user, can already see in SharePoint; it's naturally bounded by that identity's own permissions, which are often broad in practice. The application path starts tenant-wide and stays that way until an admin completes the restriction steps above. Once completed, it's the narrower of the two: access can be scoped to an exact list of sites, with no dependency on any one person's own SharePoint permissions. --- # Restricting CloudFiles Application Access to Specific SharePoint Sites https://help.cloudfiles.io/salesforce/restrict-cloudfiles-access-to-specific-sharepoint-sites # Restricting CloudFiles Application Access to Specific SharePoint Sites How to remove CloudFiles' broad, tenant-wide SharePoint permissions and grant it access to only the specific sites you choose, using the Microsoft Entra admin center and a short PnP PowerShell script. > Kind: FAQ · Updated: Aug 3, 2026 By default, the CloudFiles application can read and write files across every SharePoint site in your tenant. If you'd rather CloudFiles only reach a specific set of sites — say, just the sites your team actually uses for document generation — you can restrict it in two steps: - Remove the broad, tenant-wide permission(s) from the CloudFiles application in your Microsoft Entra admin center. - Grant CloudFiles access to just the sites you choose, using a short PowerShell script your IT/M365 admin runs once per site. After both steps, CloudFiles will only be able to reach the sites you've explicitly granted it — nothing else. This is a one-time setup per site; you'll repeat the grant step (a single command) whenever you want to add another site later. Who should do this: someone with SharePoint Administrator or Global Administrator privileges in your Microsoft 365 tenant. Both parts below say exactly which role is needed and where. > **Applies to Service Principal connections only** — This article only applies if your org connects to SharePoint using a Service Principal. If you're not sure which method you use, see SharePoint Connection Methods: Integration User vs Service Principal. ## Part 1: Remove the broad permission(s) from CloudFiles CloudFiles' application registration currently holds a few different Microsoft Graph permissions. Only one of them — Sites.Selected — is designed for the "just the sites I pick" model. The others below grant broad, tenant-wide access and are the ones you'd remove to actually restrict CloudFiles: | Permission | API | Type | Effect if left in place | |---|---|---|---| | Sites.Selected | Microsoft Graph | Application | Keep this one — it's what makes the per-site grants in Part 2 possible. | | Sites.Manage.All | Microsoft Graph | Application | Tenant-wide: create/edit/delete lists and items in every site collection. | | Files.ReadWrite.All | Microsoft Graph | Application | Tenant-wide: read, create, update, and delete all files in all site collections, independent of Sites.Selected — its scope is always the full tenant. | > **Important** — Both of the broad permissions above grant tenant-wide access on their own. If you remove Sites.Manage.All but leave Files.ReadWrite.All in place, CloudFiles will still be able to reach every site in your tenant — the restriction only takes effect once both are removed and only Sites.Selected remains. Removing Files.ReadWrite.All removes CloudFiles' broad file access entirely, so confirm with CloudFiles support first if you're unsure whether any of your other CloudFiles usage depends on it. Leave every Delegated-type permission alone (e.g. User.Read, Team.Create, Sites.ReadWrite.All (Delegated)) — those support features that run in the context of a signed-in user and aren't part of this restriction. ### Steps (Microsoft Entra admin center) - Sign in to the Microsoft Entra admin center with an account that holds at least the Cloud Application Administrator role (Application Administrator also works). - Go to Home → Enterprise applications → All applications, and select CloudFiles. ![Enterprise applications — All applications, CloudFiles](https://media.help.cloudfiles.io/faq-restrict-cloudfiles-access-to-specific-sharepoint-sites-sf/01.png) - In the CloudFiles application's left-hand menu, select Security → Permissions, then the Admin consent tab. This page lists every permission granted for your entire organization — you can review, revoke, and restore permissions here. ![Permissions blade](https://media.help.cloudfiles.io/faq-restrict-cloudfiles-access-to-specific-sharepoint-sites-sf/02.png) - Find the row for the permission you want to remove (e.g. Sites.Manage.All, Type = Application). Select the ··· menu at the end of that row, then Revoke permission. - Confirm the revocation when prompted. ![Revoke permission confirmation](https://media.help.cloudfiles.io/faq-restrict-cloudfiles-access-to-specific-sharepoint-sites-sf/03.png) - Repeat steps 4–5 for each additional broad permission you're removing (e.g. Files.ReadWrite.All) — do not revoke Sites.Selected. One thing to keep in mind: revoking here stops CloudFiles from using that permission going forward, but it doesn't prevent a user from re-consenting to it later if CloudFiles' own sign-in flow ever requests it again — that's a separate, tenant-level consent-policy setting if you want to lock it down further. ## Part 2: Grant CloudFiles access to specific sites (PowerShell) Once the broad permissions are gone, CloudFiles has Sites.Selected and effectively zero site access — consenting an app to a *.Selected permission grants it no access at all until a specific site grant is made. You give it access back, one site at a time, with a short PowerShell command. ### Optional: install and set up PowerShell If you already have PowerShell 7+ and the PnP.PowerShell module, skip to "Connect," below. - Install PowerShell 7.4 or later, if you don't already have it (PnP.PowerShell requires it; Windows PowerShell 5.1 isn't supported). See Microsoft's Installing PowerShell on Windows, Linux, and macOS guide. - Install the PnP.PowerShell module (this is the module this guide uses throughout): ```powershell Install-Module PnP.PowerShell ``` Full official install instructions: PnP PowerShell — Installation. - Register a one-time sign-in app for PnP PowerShell. As of September 2024, Microsoft retired the shared app PnP PowerShell used to use for interactive sign-in, so you now register your own (a one-off, once-per-tenant setup — not related to CloudFiles' own app registration): ```powershell Register-PnPEntraIDAppForInteractiveLogin ` -ApplicationName "PnP Management Shell" ` -Tenant ".onmicrosoft.com" ` -GraphDelegatePermissions "Sites.FullControl.All" ``` This opens a browser sign-in window and needs to be run once by someone who can consent to app permissions (Application Administrator or Global Administrator). It prints a Client ID — save it; you'll pass it to Connect-PnPOnline as -ClientId in the step below. ### Connect Connect to the site you're about to grant access to, signed in interactively as a user who holds the SharePoint Administrator or Global Administrator role — this is a hard requirement of the underlying grant operation. ```powershell Connect-PnPOnline ` -Url "https://.sharepoint.com/sites/" ` -ClientId "" ` -Interactive ``` ### Grant CloudFiles access to the site ```powershell Grant-PnPEntraIDAppSitePermission ` -AppId "eb406824-efe3-4989-8247-b80f25f73ae2" ` -DisplayName "CloudFiles" ` -Site "https://.sharepoint.com/sites/" ` -Permissions Write ``` - -AppId — CloudFiles' Application (client) ID, eb406824-efe3-4989-8247-b80f25f73ae2. You can confirm this matches your own tenant's copy of the app under Enterprise applications → CloudFiles → Overview → Application ID — it should read the same value. - -DisplayName — a label only; "CloudFiles" keeps the grant list readable. - -Site — the full URL of the site you're granting access to. - -Permissions — one of Read, Write, Manage, or FullControl, least to most access. For most CloudFiles use (reading and writing documents) Write is the right choice; use FullControl only if CloudFiles needs to manage the site itself, and confirm with CloudFiles support if unsure. Worked example — granting CloudFiles write access to a site called "Marketing": ```powershell Grant-PnPEntraIDAppSitePermission ` -AppId "eb406824-efe3-4989-8247-b80f25f73ae2" ` -DisplayName "CloudFiles" ` -Site "https://contoso.sharepoint.com/sites/Marketing" ` -Permissions Write ``` To grant access to another site, repeat this command with a different -Site value — there's no bulk "all future sites" option; each site needs its own explicit grant. ### Verify the grant took effect ```powershell Get-PnPEntraIDAppSitePermission -Site "https://contoso.sharepoint.com/sites/Marketing" ``` This lists every app granted access to that site, including CloudFiles, its permission level, and a Permission ID — note that ID if you might need to revoke this specific grant later. ![Get-PnPEntraIDAppSitePermission output after a successful grant](https://media.help.cloudfiles.io/faq-restrict-cloudfiles-access-to-specific-sharepoint-sites-sf/04.png) ### Verify in the CloudFiles Salesforce app (register the site) As a final end-to-end check, register the granted site in the CloudFiles Salesforce app — this exercises CloudFiles' actual access to the site: - In Salesforce, open the CloudFiles app and go to Document Management → Library, then select Libraries in the left-hand menu. - Scroll to the Register Sites section ("Only the registered sites will be visible to users connecting their SharePoint account with CloudFiles"). - Click Register and add the site you granted in the previous step. If the site registers successfully and appears in the registered list, CloudFiles' access to that site is working end to end — users connecting their SharePoint account will now see it. ![CloudFiles Salesforce app — Register Sites](https://media.help.cloudfiles.io/faq-restrict-cloudfiles-access-to-specific-sharepoint-sites-sf/05.png) ### Revoking a site grant To remove CloudFiles' access to a specific site later, run: ```powershell Revoke-PnPEntraIDAppSitePermission ` -Site "https://contoso.sharepoint.com/sites/Marketing" ` -PermissionId "" ``` Get the Permission ID from the verification command above. This only removes access to that one site — it doesn't touch CloudFiles' Sites.Selected consent from Part 1, or any other site's grant. --- # Why do I see more sites in Salesforce which I generally don't see in SharePoint? https://help.cloudfiles.io/salesforce/why-do-i-see-more-sites-in-salesforce-which-i-generally-dont-see-in-sharepoint # Why do I see more sites in Salesforce which I generally don't see in SharePoint? CloudFiles in Salesforce can show a longer list of SharePoint sites than the SharePoint interface because it uses an API call that reveals all sites you already have access to, including hidden ones. > Kind: FAQ · Updated: Jul 4, 2026 When using CloudFiles in Salesforce, you may notice a longer list of SharePoint sites than what you typically see in the SharePoint interface. This difference occurs because of the following reasons - - Hidden Sites: Many sites that you have access to in SharePoint are generally hidden in its interface. - API-Based Access: CloudFiles uses an API call to SharePoint, revealing all sites that you have access to, even if they are hidden in SharePoint's interface. - Same Access Rights: You already have access to these sites; CloudFiles simply displays them based on your existing permissions. ## How to Limit the Displayed Sites in Salesforce If you'd like to only see a specific set of sites in CloudFiles, you can register your preferred sites. This allows you to focus only on the sites relevant to your work. Refer to the image below to see where you can register sites to display only the ones you want in CloudFiles/Salesforce. ![](https://media.help.cloudfiles.io/faq-why-do-i-see-more-sites-in-salesforce-which-i-generally-dont-sf/01.png) For more detailed steps, please check out How to register sites --- # AWS S3 - FAQs https://help.cloudfiles.io/salesforce/aws-s3-faqs # AWS S3 - FAQs Find answers to common questions about using AWS S3 Storage with CloudFiles. > Kind: FAQ · Updated: Jul 4, 2026 Find answers to common questions about using AWS S3 Storage with CloudFiles. ## How to integrate AWS S3 bucket with CloudFiles? Step-by-step guide to integrate your AWS S3 bucket with CloudFiles using an AWS CloudFormation template. Covers prerequisites, creating a CloudFormation stack, retrieving the Bucket Name and Role ARN, and entering these details in CloudFiles to complete the connection and start managing S3 files from Salesforce. Read More -> --- # How to integrate AWS S3 bucket with CloudFiles https://help.cloudfiles.io/salesforce/how-to-integrate-aws-s3-bucket-with-cloudfiles # How to integrate AWS S3 bucket with CloudFiles This guide walks through connecting your AWS S3 bucket to CloudFiles using an AWS CloudFormation template. > Kind: FAQ · Updated: Jul 4, 2026 This guide will walk you through the process of connecting your AWS S3 bucket to CloudFiles using an AWS CloudFormation template. By the end of this guide, you will have created a new stack in CloudFormation and obtained the necessary details to successfully link your S3 bucket to CloudFiles. ### Prerequisites You need an active AWS account and an S3 bucket for integration. Ensure that you have already created the required S3 bucket in your account before proceeding with the following steps. ### Steps - Enter your bucket name in CloudFiles - Open the CloudFiles app in Salesforce and navigate to Document Management > Libraries. Click on AWS S3. (If you do not see the AWS S3 option, click Manage Libraries and add it first) - Click Connect, enter your S3 bucket name, and continue. - Download the CloudFormation template - Note down the External ID shown on screen, then download the CloudFormation template that is generated. - Head over to the AWS Management Console after this step. - Access AWS CloudFormation - In the AWS Management Console, search for and select 'CloudFormation'. - Create a New Stack - Click on “Create stack” and select “With new resources (standard)”. - Choose “Template is ready” under the “Prepare template” options. - Upload the CloudFormation Template - Select “Upload a template file”. - Click on “Choose file” and upload the CloudFormation template you downloaded in step 2. - Click “Next”. - Specify Stack Details - Enter a name for your stack. For example, “CloudFilesS3Integration”. - Fill in any parameters required by the template, if applicable. - Click “Next”. - Configure Stack Options (Optional) - Configure any additional options like tags or permissions if necessary. - Click “Next”. - Review and Create the Stack - Review all settings and details. Make sure everything is correct. - Acknowledge that AWS CloudFormation might create IAM resources. - Click “Create stack”. - Wait for Stack Creation - The stack creation process might take a few minutes. Wait until the status changes to “CREATE_COMPLETE”. - Obtain the Outputs - Once the stack creation is complete, go to the “Outputs” tab of your stack. - Note down the ‘Role ARN’ values. This is essential for connecting your S3 bucket to CloudFiles. - Enter Details in CloudFiles - Log into your CloudFiles account. - Navigate to the S3 bucket integration section. - Enter the ‘Role ARN’ you noted down earlier. Also enter the following fields. - Prefix (optional): This defines the folder path within your S3 bucket that CloudFiles will use. This lets you organise data within a specific section of the bucket rather than the entire bucket. When connecting a bucket for the first time, you can use any prefix. If you reuse an existing bucket in another org, each connection must use a unique, non-overlapping prefix to prevent conflicts — for example, team-a/ and team-b/ are valid, but team-a/ and team-a/subfolder/ are not. - Drive label: The display name for this storage connection in CloudFiles. This is what users will see when accessing or selecting a storage location. It is optional for the first bucket connected in your org but required for any additional connections. - Save your settings. > **Note** — A prefix is mandatory every time you connect the same bucket more than once, whether within the same org or across different orgs — this ensures paths do not overlap. If you are connecting the same bucket a second time within the same org, both the original and the new connection must have a prefix, so if the first connection was made without one, disconnect it and reconnect with a prefix before adding the second.A drive label is mandatory from the second bucket onward within the same org, regardless of whether the buckets are the same or different. After entering the details in CloudFiles, your S3 bucket should now be successfully connected to your CloudFiles account. You can start managing and accessing your S3 files directly through CloudFiles. > **Note** — If a bucket is already connected, you will see a 'Reuse Existing Connection' option at this stage and can connect the same bucket again using a different, non-overlapping prefix. - Enable sync (optional) - Toggle on Enable Sync to automatically reflect changes from your S3 bucket in CloudFiles. - Once enabled, any files or folders uploaded, updated, or deleted in S3 will appear in CloudFiles. > **Note** — Sync only applies to changes made after the toggle is enabled. Existing files in your S3 bucket will not appear automatically in CloudFiles. To make historical data available, a custom migration is required — contact support@cloudfiles.io for details.If your S3 bucket was connected before the automated sync setup was introduced, enabling sync may require updating the IAM role permissions first. See How to enable Auto Sync for old S3 buckets connected in CloudFiles for steps. --- # How to enable Auto Sync for old S3 buckets connected in CloudFiles https://help.cloudfiles.io/salesforce/how-to-enable-auto-sync-for-old-s3-buckets-connected-in-cloudfiles # How to enable Auto Sync for old S3 buckets connected in CloudFiles Explains why re-enabling sync on older, manually-configured S3 connections fails with a missing-SNS-permissions error, and walks through updating the IAM role's policy to add the required SNS permissions so the automated sync setup can complete. > Kind: FAQ · Updated: Jul 4, 2026 Some older S3 connections were set up using a manual sync process on the backend. When sync is turned off and then turned back on, CloudFiles now uses a newer, automated setup to re-enable it. This newer setup requires additional permissions that were not part of the original configuration. Because of this, the system is unable to complete the sync setup and shows the following error about missing SNS permissions. ```json {"message":"The IAM role does not have the required SNS permissions to enable sync. Please update your CloudFormation stack with the latest template to add SNS permissions.","error":"Bad Request","statusCode" :400} ``` You may still see files being uploaded from Salesforce to S3, since that part of the integration continues to work independently of the sync setup. To resolve this issue, you need to update the IAM role used for your S3 connection to include the required SNS permissions. ### Step 1: Find the IAM role used for your S3 connection - Go to the AWS account where your S3 integration was set up and open the CloudFormation service. - Locate the stack that was created for the CloudFiles S3 setup and open it. Navigate to the Outputs tab and find the Role ARN. The value will look similar to: ```text arn:aws:iam::{accountId}:role/{iamRole} ``` - Note the role name after role/. ### Step 2: Open the role in AWS IAM - Go to IAM → Roles in AWS. - Search for the role using the name you identified from the Role ARN and open it. ### Step 3: Add the required SNS permissions - Edit the permissions for this role and add the following policy statement: ```json { "Action": [ "sns:CreateTopic", "sns:DeleteTopic", "sns:Subscribe", "sns:Unsubscribe", "sns:SetTopicAttributes", "sns:GetTopicAttributes", "sns:ListSubscriptionsByTopic" ], "Resource": [ "arn:aws:sns:*:{your-aws-account-id}:CloudFiles-*" ], "Effect": "Allow" } ``` - Replace {your-aws-account-id} with your AWS account ID. This allows CloudFiles to create and manage the SNS topic required for the automated sync setup. ### Step 4: Save the changes - Save the updated policy and make sure it is attached correctly to the IAM role. ### Step 5: Turn sync back on in CloudFiles - Return to CloudFiles and enable sync toggle for the S3 connection. - The setup should now complete successfully. ## Expected result Once the permissions are updated and sync is enabled, CloudFiles will be able to complete the automated setup and start syncing changes from your S3 bucket. ## If the issue continues If you still see an error, double-check that the permissions were added to the correct IAM role and that the AWS account ID in the policy is correct. You can then try enabling sync again. If the issue persists, contact support@cloudfiles.io and share the error message along with the Role ARN used for your S3 connection. --- # Azure Blob - FAQs https://help.cloudfiles.io/salesforce/azure-blob-faqs # Azure Blob - FAQs Find answers to common questions about using Azure Blob Storage with CloudFiles. > Kind: FAQ · Updated: Jul 4, 2026 Find answers to common questions about using Azure Blob Storage with CloudFiles. ## How to integrate Azure Blob storage with CloudFiles? Step-by-step guide to connect Azure Blob Storage with CloudFiles. Covers adding the CloudFiles app in Azure, creating and configuring storage accounts and containers, setting permissions, and enabling auto-sync to keep your files updated in real time within Salesforce. Read More -> ## How to enable auto-sync on Azure Blob Guide to set up auto-sync between Azure Blob Storage and CloudFiles. Includes creating an event subscription, configuring webhooks, setting delivery retries, adding filters, and connecting your container so new or deleted files automatically sync with Salesforce. Read More -> --- # How to integrate Azure Blob storage with CloudFiles https://help.cloudfiles.io/salesforce/how-to-integrate-azure-blob-storage-with-cloudfiles # How to integrate Azure Blob storage with CloudFiles A step-by-step guide to help you connect your Azure blob storage container with CloudFiles. > Kind: FAQ · Updated: Jul 4, 2026 Here's a step-by-step guide to help you connect your Azure blob storage container with CloudFiles. ### Step 1: Add CloudFiles Application - Search for CloudFiles in Microsoft Entra Gallery. - Click on CloudFiles and click "Create" to add an instance of CloudFiles application in your Azure portal ![](https://media.help.cloudfiles.io/faq-how-to-integrate-azure-blob-storage-with-cloudfiles-sf/01.png) If the above doesn't work for you, alternatively you can click the button below to authorize CloudFiles. This will add CloudFiles automatically to your enterprise applications list. ### Step 2: Create a Storage Account - Navigate to Azure Portal - Log in to your Azure portal. - Create a New Storage Account - Go to the 'Storage accounts' section and click on 'Add' to create a new storage account. - Configure the Storage Account - Follow the on-screen instructions to configure your storage account, selecting the appropriate subscription, resource group, and other relevant settings. ### Step 3: Create a Container in Storage Account - Open Storage Account - Once the storage account is created, open it. - Create Container - In the storage account dashboard, locate the 'Containers' section and create a new container. Assign a name and set the access to Private (no anonymous access) ### Step 4: Update Storage Account Access Control Add Storage Blob Delegator Permission - In the storage account settings, go to Access Control (IAM). Create a new Role Assignment. Select the role: "Storage Blob Delegator". On Members screen, search for "CloudFiles" service principal. ### Step 5: Update Container Access Control Add Storage Blob Data Contributor Permission - In the container settings, go to Access Control (IAM). Create a new Role Assignment. Select the role: "Storage Blob Data Contributor". On Members screen, search for "CloudFiles" service principal. ### 6 - Configure Azure Storage in CloudFiles - Open CloudFiles Setup in Salesforce: Log into your Salesforce account and navigate to the CloudFiles app launcher. Go to libraries section in Document Management app, select Azure Blob. - Enter the 'Storage Account Name' and 'Container Name' - (Optional) Enter 'Prefix': The Prefix defines the folder path within your azure container that CloudFiles will use. This allows you to organize data within a single section of the container instead of using the entire container. When connecting a container for the first time, you can choose any prefix. If you reuse an existing container in another org, each connection must use a unique, non-overlapping prefix to prevent conflicts. For example, team-a/ and team-b/ are valid, but team-a/ and team-a/subfolder/ are not. - Enter 'Drive Label': The Drive Label is the display name for the storage connection in CloudFiles. This label is what users will see in the UI when accessing or selecting a storage location, making it easier to identify and distinguish between multiple connected drives. It is optional for the first container connected in the org but required for any additional connections to ensure each drive can be easily identified. - Connect > **Note** — A prefix is mandatory every time you connect the same container more than once, whether within the same org or across different orgs — this ensures paths do not overlap. If you are connecting the same container a second time within the same org, both the original and the new connection must have a prefix, so if the first connection was made without one, disconnect it and reconnect with a prefix before adding the second.A drive label is mandatory from the second container onward within the same org, regardless of whether the containers are the same or different. ![](https://media.help.cloudfiles.io/faq-how-to-integrate-azure-blob-storage-with-cloudfiles-sf/03.png) ### 7 - Enable auto sync in Azure (Optional) - If you wish to have a 2 way sync to view your files in Azure through the CloudFiles widget, please follow the steps mentioned in How to enable auto-sync on Azure Blob ### 8 - Enable Sync in CloudFiles - Turn on Enable Sync to automatically sync changes between your azure container and CloudFiles. (Completing step 8 is mandatory if you wish to turn this toggle on) - Once enabled, any files or folders that are uploaded, updated, or deleted in azure will be reflected in CloudFiles. > **Note** — Sync only applies to changes made after the toggle is enabled. Existing files in your azure container will not appear automatically in CloudFiles. To make historical data available, a custom (paid) migration is required. Please contact support@cloudfiles.io for more details. ![](https://media.help.cloudfiles.io/faq-how-to-integrate-azure-blob-storage-with-cloudfiles-sf/04.png) --- # How to enable auto-sync on Azure Blob https://help.cloudfiles.io/salesforce/how-to-enable-auto-sync-on-azure-blob # How to enable auto-sync on Azure Blob Step-by-step guide to enable auto-sync with CloudFiles on Azure Blob storage using Azure Event Grid subscriptions. > Kind: FAQ · Updated: Jul 4, 2026 Follow these steps to enable auto-sync with CloudFiles on your Azure Blob storage: ### Step 1: Navigate to Azure Storage Account - Log into your Azure Portal. - Locate and select your Storage Account from the dashboard or resource groups. ### Step 2: Access Events - On your storage account overview page, click Events in the left sidebar. ### Step 3: Create an Event Subscription - Click on + Event subscription. - Provide a meaningful name, e.g., CloudFilesWebhook. - Select Event Grid Schema from the dropdown under Event Schema. - Under Topic Details, ensure your storage account details are correctly filled. ### Step 4: Configure Event Types - Under Event Types, select: - Blob Created - Blob Deleted ### Step 5: Setup Endpoint - In the Endpoint details, choose Web Hook. - Configure the endpoint URL as: ```text https://api.cloudfiles.io/webhooks/azure-event-grid/blob ``` ### Step 6: Delivery Properties - In the Delivery properties, click Add new header. - Add the following details: - Header Name: x-webhook-secret - Type: Static - Value: Copy this value from your CloudFiles App in Salesforce (See screenshot below) - Secret: Set to True (check the box) ![](https://media.help.cloudfiles.io/faq-how-to-enable-auto-sync-on-azure-blob-sf/01.png) ### Step 7: Configure Retry Policies - Navigate to the Additional Features tab. - Under Retry Policies, set: - Max Event Delivery Attempts: 30 - Event Time to Live: 1 day, 0 hours, 0 minutes, and 0 seconds ### Step 8: Enable Subject Filtering - Under Filters, enable Subject Filtering. - Add a filter to ensure only events from the relevant container are synced. - Example filter format: /blobServices/default/containers/ Kind: FAQ · Updated: Jul 4, 2026 Explore common questions and solutions related to automation and AI features in Salesforce and CloudFiles. Click “Read More” to see detailed steps and additional guidance. ## What is an Automation Action? CloudFiles actions in Salesforce flows let you create folders, update permissions, or copy files to external storage like SharePoint or Google Drive. Each action counts as one execution per flow run, no matter how many files it processes. Your plan includes a monthly quota of action uses per license, aggregated annually. If you exceed limits, flows keep working, but CloudFiles may ask you to upgrade if usage stays high. Read More -> ## What is an AI credit CloudFiles AI lets you query, classify, and summarize documents using natural language. AI credits are used for billing: one credit per page when processing a file, and one credit for each query made on that file. Read More -> ## How do I check my consumed automation credits? Each CloudFiles flow action uses one automation credit, and unused credits don’t roll over. To check usage, go to the App Launcher in Salesforce, open CloudFiles, click the Document Management tab, and select Automation in the sidebar to see credits consumed by day, week, and month. Contact support if you need more credits. Read More -> ## How to make existing Salesforce records work with CloudFiles To set up CloudFiles automations for existing Salesforce records (data migration), ensure your flows are configured and you have a paid subscription. Book a call with the CloudFiles team to share details like record IDs. The team will run the migration based on your data, typically completing it within a few hours depending on volume. Read More -> --- # What is an Automation Action https://help.cloudfiles.io/salesforce/what-is-an-automation-action # What is an Automation Action Learn how CloudFiles can enhance your Salesforce flows by allowing you to seamlessly interact with external storage platforms like SharePoint and Google Drive. > Kind: FAQ · Updated: Jul 4, 2026 CloudFiles provides multiple actions in Salesforce flows to interact with your external storage like SharePoint, Google Drive etc. These actions can be used to perfom tasks like creating a folder, updating permissions, copying files form Salesforce to external storage etc. ![](https://media.help.cloudfiles.io/faq-what-is-an-automation-action-sf/01.png) Each time a flow executes, all the CloudFiles actions used in the flow are counted as 1 "Automation action execution" each. For example, if your flow uses "Create Folder" action 3 times, it will use 3 action executions whenever the flow executes once. The number of inputs to a flow action does not count towards multiple executions, but only one. For example, the "Copy Salesforce Files" action can be used to copy multiple files at a time to external storage. It will only be counted as one execution if you copy a single file in the flow or 100. Each CloudFiles subscription plan gives you an allowance on number of flow action used per license per month. For example if your plan gives you 100 flow action uses per license per month and you have bought 10 licenses, you will get 1000 flow action uses/per month. These limits are aggregated on annual plans. ### About flow action uses limits - Some plans like "Enterprise" or "Automation License" provide custom automation actions based on your use-case. - If you go over the limit, CloudFiles won't block your flows or any funcationality. However, if you go over significantly, we will reach out to you to request an upgrade - Unused flow actions don't roll over to next month on monthly plans. However on annual plans these can be aggregated. --- # What is an AI credit https://help.cloudfiles.io/salesforce/what-is-an-ai-credit # What is an AI credit CloudFiles AI usage is billed via AI credits, consumed when processing a file (per page) and when querying it, with duplicate files reusing an existing Processed Document ID to avoid extra charges. > Kind: FAQ · Updated: Jul 4, 2026 CloudFiles AI provides a way to query documents usign natural language prompts. These queries can be used to extract information from documents, to classify documents or to summarize documents. Uses of CloudFiles AI are billed using AI credits. An AI credit is consumed in 2 ways - - Processing a file - A files is needed to be processed once for AI querying. While processing a file, an AI credit is consumed for each page of the file - Querying a file - An AI credit is consumed for each query on the file ## Duplicate File Handling CloudFiles prevents unnecessary re-processing of duplicate files. When a file is submitted for processing, its content is verified using hashing. If the hash matches an already processed file, CloudFiles reuses the existing Processed Document ID instead of processing it again. This means no additional AI credits are consumed for duplicates, saving credits when the same file is uploaded multiple times. > **Note** — Duplicate file handling is currently supported only for PDF files without the "Pages to Process" option applied. --- # How do I check my consumed automation credits? https://help.cloudfiles.io/salesforce/how-do-i-check-my-consumed-automation-credits # How do I check my consumed automation credits? Explains how automation credits are consumed by flow actions and how to check consumed automation credits in CloudFiles on Salesforce. > Kind: FAQ · Updated: Jul 4, 2026 One automation credit is used each time you perform a flow action. For example, if your workflow includes four flow actions, running the workflow once will use four credits. Every execution of a flow action consumes one credit, and unused credits do not carry over to the next period. It's important to monitor the usage of your automation credits to prevent disruptions in the execution of CloudFiles flow actions. If you run out of automation credits, please contact us for assistance. This is how the automation credit consumption looks like - ![](https://media.help.cloudfiles.io/faq-how-do-i-check-my-consumed-automation-credits-sf/01.png) To check the automation credits consumed, please follow the 4 easy steps as described below - - Navigate to the AppLauncher on Salesforce - Search for CloudFiles in the search bar. - Once in CloudFiles, locate and click on the 'Document Management Tab'. - From the left sidebar, choose the Automation option and then you can view your automation credit consumption, categorized by day, week, and month. Refer to the GIF below to have a visual understanding of these steps - ![](https://media.help.cloudfiles.io/faq-how-do-i-check-my-consumed-automation-credits-sf/02.gif) If your automation credits are exhausted, please contact us at support@cloudfiles.io to upgrade your plan. --- # How to make existing Salesforce records work with CloudFiles https://help.cloudfiles.io/salesforce/how-to-make-existing-salesforce-records-work-with-cloudfiles # How to make existing Salesforce records work with CloudFiles Learn how to efficiently migrate your data using CloudFiles, including why it's crucial to have CloudFiles processes fully set up for new records before starting the migration. > Kind: FAQ · Updated: Jul 4, 2026 ## Introduction With CloudFiles, you can set up flows to automate tasks like folder creation on record create/update, automatically copying files to external storage on certain events etc. However, unless your Salesforce account is brand new, you would always have exisitng records which need to have the same file/folder setup. In this article, we will see how to achieve this. This process is commonly called Data Migration. ## Pre-requisites - CloudFiles Setup: Data migration is best done when you have setup CloudFiles processes completely for your new records. This ensures that our processes are finalized and flows are setup correctly. - CloudFiles Subscription: Data Migration is provided free of cost with your CloudFiles subscription. However, since each migration might require some custom work, we require you to be on a paid subscription before the migration can be run. This does not include being on an extended trial or a paid pilot. ## The Process When you're ready for the data migration, please book a short call with CloudFiles team to talk about your existing data. CloudFiles team will then suggest the information it would need to run the migration. This involves getting a data file from you which includes information about the records for which migration needs to be run. For example, a list of all Salesforce Account Ids for which you want folders created in SharePoint and connected to accounts in Salesforce After getting all the information, CloudFiles team will run the migration at a suitable time as suggested by you. Migration time depends on the size of data. For a few thousand records it generally takes a couple of hours. The expected time of finishing up the migration will be conveyed to you at the start of the process. --- # Common Errors & Troubleshooting https://help.cloudfiles.io/salesforce/common-errors-and-troubleshooting # Common Errors & Troubleshooting Find step-by-step guides and solutions for common issues, walking you through proven fixes and recommended best practices to get you back on track quickly. > Kind: FAQ · Updated: Jul 4, 2026 Find step-by-step guides and solutions for common issues. Whether you’re experiencing errors, unexpected behavior, or need help configuring features, these articles walk you through proven fixes and recommended best practices to get you back on track quickly. ## Why is my flow failing with a 403 Error: “Paid plan is required to use Salesforce workflows”? This error appears when your CloudFiles plan is inactive or your trial has expired. Salesforce workflows using CloudFiles actions require a valid subscription. Reactivate your plan or contact support to continue using automation features. Read More -> ## Why am I seeing a 404 error with the message “Something went wrong”? Salesforce flows using CloudFiles actions might fail and produce the following generic error sometimes: An apex error occurred: cldfs.CloudFilesException:{"statusCode":404, "message":"Something went wrong"}.This usually indicates that the Salesforce flow attempted to access a resource (such as a file or folder) that doesn’t exist or isn't accessible in the connected external storage. Read More -> ## Why is an admin approval required when connecting to SharePoint? Some users may encounter an “Admin Approval Required” prompt when accessing SharePoint through the CloudFiles widget in Salesforce. This occurs when Microsoft permissions for the CloudFiles app have not been granted by a Microsoft administrator and is unrelated to Salesforce permissions, CloudFiles roles, or license status. Read More -> ## Why am I seeing a “You need CloudFiles license to access this widget” message? This happens when the user isn’t registered in CloudFiles or their license is inactive. Ask the user to click the widget to register, then activate their license under User Management in the CloudFiles app. Read More -> ## Why is my ‘Create Folder’ flow action failing and how do I fix it? When running a flow with the Create Folder action, you may run into different errors caused by permissions, configuration issues, or incorrect input parameters. This article outlines the most common problems, explains why they occur, and provides clear steps to troubleshoot and fix them. Read More -> ## Why do I get context user license failure in Salesforce automation? CloudFiles users may encounter automation failures when Salesforce flows, process builders, or other automation attempt to run CloudFiles actions. The error “Context user doesn’t have a product license” occurs when the user triggering the automation does not have the required CloudFiles product license, causing the process to fail and triggering an error notification to admins. Read More -> ## Why do I get "Email Not Verified” error when connecting Salesforce to CloudFiles This error may appear when connecting CloudFiles with Salesforce, particularly in sandbox environments, if the Salesforce user’s email is not verified. CloudFiles enforces email verification as a security measure, which can prevent the connection from being established until the user’s email is confirmed. Read More -> ## Why do my file uploads in Experience Cloud fail? Users uploading files through Salesforce Experience Cloud to SharePoint may encounter errors such as “Upload failed” or generic “Something went wrong” messages. These issues usually occur when the Experience Cloud user lacks the required SharePoint permissions or when there are configuration problems with the CloudFiles integration. Read More -> ## Why is my failed flow running multiple times? When a flow fails in Salesforce, it automatically retries several times over increasing intervals (15 min, 30 min, 1 hr, 2 hrs). This can trigger CloudFiles actions multiple times and generate repeated error notifications. There is no setting to disable this behavior. To reduce impact, test flows thoroughly before using them in production. Read More -> ## Why do I get "Invalid Refresh Token” error in flows? This error occurs when a CloudFiles action in a Salesforce flow fails because the authentication token for the connected storage provider has expired or become invalid. As a result, CloudFiles cannot access the storage service, causing the flow to fail. Read More -> ## Why are my Salesforce-CloudFiles flow actions not triggering even though the flow is configured correctly? Sometimes, Salesforce flows that previously worked correctly with CloudFiles suddenly stop executing certain actions — such as copying files, processing documents, or triggering any other flow actions, even though everything appears to be configured correctly. In these cases, events may be trgiggered, but follow-up flow actions fail to run as expected. These flows often continue to work correctly in one Org (such as a Dev or Sandbox environment), but fail in another (Production), without generating any visible errors in Salesforce or CloudFiles. Read More -> ## Why am I seeing “System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out” error? Salesforce enforces a restriction where external API callouts cannot occur after uncommitted database operations within the same transaction. If a CloudFiles action (like folder creation or document generation) is placed after a DML step in a flow, Salesforce will throw the error “System.CalloutException: You have uncommitted work pending.” This is a platform limitation, not a CloudFiles-specific issue. Read More -> ## Why aren’t Thumbnails showing in my LWC component? If thumbnails are not showing in your Lightning Web Components, it’s usually because the required URLs are not marked as trusted. To fix this, add https://*.svc.msto Salesforce Trusted URLs with the img-srcoption enabled. Go to Setup > Security > Trusted URLs, create a new entry, and save. This will allow thumbnail images to load correctly in your component. Read More -> ## Why are all my users seeing admin settings? The app was installed for all users instead of admins only, giving everyone access to admin settings. Uninstall and reinstall CloudFiles with “Admins Only” access, then assign roles using permission sets. Read More -> --- # 403 Error: "Paid plan is required to use Salesforce workflows" – Why is my flow failing? https://help.cloudfiles.io/salesforce/403-error-paid-plan-is-required-to-use-salesforce-workflows-why-is-my-flow-failing # 403 Error: "Paid plan is required to use Salesforce workflows" – Why is my flow failing? Explains why Salesforce flows using CloudFiles actions may fail with a 403 "Paid plan is required to use Salesforce workflows" error, and how to fix it by checking subscription status and upgrading or renewing your plan. > Kind: FAQ · Updated: Jul 4, 2026 ## What is the Issue? In some cases, Salesforce flows that include CloudFiles actions may fail to execute and return the following error: cldfs.CloudFilesException: {"message":"Paid plan is required to use Salesforce workflows","error":"Forbidden","statusCode":403} ![](https://media.help.cloudfiles.io/faq-403-error-paid-plan-is-required-to-use-salesforce-workflows--sf/01.png) ## Why does this happen? This error occurs when your CloudFiles account does not have an active subscription, or if your trial period has expired. Salesforce workflows and flows that rely on CloudFiles APIs require a valid CloudFiles plan to function. When a flow attempts to invoke a CloudFiles action without an active plan, the system responds with an HTTP 403 Forbidden error. The error message explicitly states that a paid plan is required to proceed with Salesforce-based automation tasks. ## How to fix this issue? To fix this issue and restore flow functionality: - Check your CloudFiles subscription status: - Navigate to your CloudFiles app in Salesforce to verify whether your account is under an active paid plan or trial. - You can navigate to any of the app pages and see the badge on top right to check your subscription status. ![](https://media.help.cloudfiles.io/faq-403-error-paid-plan-is-required-to-use-salesforce-workflows--sf/02.png) - If your trial has expired or you're not on a paid plan: - Reach out to CloudFiles Support or contact your account manager directly. - They can help you upgrade to a paid plan or, if appropriate, extend your trial period. - Once your plan is active, re-run your Salesforce flow. The automation should now execute without errors. --- # 404 Error: "Something went wrong" https://help.cloudfiles.io/salesforce/404-error-something-went-wrong # 404 Error: "Something went wrong" Explains why Salesforce flows using CloudFiles actions can return a generic 404 "Something went wrong" error and how to diagnose and fix the four common root causes. > Kind: FAQ · Updated: Jul 4, 2026 ## What is the Issue? Salesforce flows using CloudFiles actions might fail and produce the following generic error sometimes: An apex error occurred: cldfs.CloudFilesException:{"statusCode":404, "message":"Something went wrong"} This usually indicates that the Salesforce flow attempted to access a resource (such as a file or folder) that doesn't exist or isn't accessible in the connected external storage. ![](https://media.help.cloudfiles.io/faq-404-error-something-went-wrong-sf/01.png) ## Why does this happen? The 404 - "Something went wrong" error can occur when CloudFiles cannot locate the specified file or folder in the external storage due to a few reasons: - An incorrect file name or folder path. - The resource was deleted or moved from external storage. - The integration user lacking required permissions to the resource. - Misconfiguration in the Salesforce record causing a missing link to a parent folder. This error doesn't indicate a bug in CloudFiles but rather a misconfiguration or issue with the specified resource path or permissions. ## 1 - An incorrect file name or folder path ### What is the issue? Formulas used in Salesforce flows to dynamically build paths (for example, parentFolderPath + "/Subfolder" or folderPath + "/FileName.ext") are sensitive to case, spelling, and character accuracy. Even minor discrepancies—such as incorrect casing, missing characters, or typos—can cause CloudFiles to attempt accessing resources that don't exist in the external storage, resulting in a 404 error. This issue frequently arises when names are manually entered into flow formulas or copy-pasted incorrectly. When this occurs: - The resolved path from your formula does not match any actual file or folder in your external storage. - CloudFiles throws a 404 error because it cannot locate the specified resource. ### Example Scenario In one instance, a user created a flow formula to resolve the path to a folder called New Setup Documents, but accidentally wrote New Setup Docs. Because the actual folder in external storage is named "New Setup Documents", CloudFiles attempts to access the incorrect path (New Setup Docs), fails to locate the resource, and returns a 404 error. ### How to fix this issue - Review and correct the folder or file names within your Salesforce flow formulas. - Ensure an exact match—including casing, spelling, and special characters—to the corresponding names in your external storage. Once corrected and redeployed, CloudFiles will successfully locate the intended resource, resolving the 404 error. ## 2 - The resource was deleted or moved from external storage ### What is the issue? Another common reason for the 404 error is when a file or folder connected to a Salesforce record has been moved, deleted, or renamed in the external storage (e.g., SharePoint, Dropbox). This causes the existing path reference stored in Salesforce to become invalid. When this occurs: - Salesforce continues to reference the old, now non-existent resource path. - CloudFiles tries to access or interact with this resource, which no longer exists at that location. - A 404 error is returned from the external storage provider's API. This issue can be difficult to identify unless you have monitoring or regular checks in place to ensure that referenced resources still exist. ### Example Scenario In one case, a flow attempted to run a document-related action on a previously connected Account folder. However, the folder had been deleted from SharePoint by another user, thereby breaking the linkage between Salesforce and SharePoint that CloudFiles relies upon. As a result: - The flow attempted to access a folder that no longer existed. - SharePoint responded with a 404 error, indicating the resource couldn't be found. - Salesforce didn't display any visible errors; instead, the flow silently failed. ### How to fix this issue - Verify that the referenced file or folder still exists in your external storage. - If deleted, either recreate or restore the missing resource. - Reconnect the file or folder to Salesforce using the CloudFiles widget to refresh the path reference. Once the connection is restored, CloudFiles actions will function correctly, and the 404 error will be resolved. > **Note** — If you suspect the folder may no longer exist, use the Connect Folder option in the CloudFiles widget to reset the path reference. ## 3 - The integration user lacking required permissions to the resource ### What is the issue? A 404 error may occur when the integration user configured in the CloudFiles App doesn't have access to a specific file or folder in the connected external storage (e.g., SharePoint, Google Drive, Dropbox). This user is set under Document Management -> Libraries in the CloudFiles App and is responsible for performing actions like retrieving files and folders during flow execution. If this user lacks the necessary permissions, the storage provider responds with a 404 error — not because the resource is missing, but because it's inaccessible to the integration user. When this occurs: - The Salesforce flow attempts to access a file or folder via CloudFiles. - The integration user tied to the external library doesn't have permission to view or retrieve that resource. - The storage provider treats the resource as "not found" and returns a 404 error. This often leads to confusion, as it appears the resource is missing, when in fact the issue lies in permission settings. ### Example Scenario At a firm using CloudFiles with SharePoint, a Salesforce flow failed with a 404 error while trying to access a project subfolder. The integration user had access to the main site but lacked permissions on that specific subfolder due to custom folder-level restrictions. Once the user was granted proper access to the folder, the flow executed without errors. ### How to fix this issue - Open CloudFiles App -> Document Management -> Libraries and check which user is set as the integration user for the affected library. - In the external storage system, verify that this user has appropriate access (typically read or read/write) to all relevant files and folders. - Update the user's permissions if necessary to ensure visibility and access to the resource. - Once access is granted, re-run the flow or action to confirm the error is resolved. ![](https://media.help.cloudfiles.io/faq-404-error-something-went-wrong-sf/02.png) ## 4 - Misconfiguration in the salesforce record causing a missing link to a parent folder ### What is the issue? Another potential cause of the 404 error is a misconfigured folder connection in Salesforce. In most cases, CloudFiles flows expect a Salesforce record to be linked to a parent folder in the external storage. From there, the system programmatically accesses subfolders as needed. However, if a user mistakenly connects a subfolder directly to the record — instead of the expected parent folder — CloudFiles will attempt to retrieve a subfolder that doesn't exist, resulting in a 404 error. When this occurs: - A flow attempts to retrieve a specific subfolder relative to the folder connected to the Salesforce record. - Since that nested structure doesn't exist, the external storage provider returns a 404 error. ### Example Scenario In one case, a Job record was mistakenly linked to the “Working Files” subfolder instead of its parent job folder. When the flow attempted to retrieve the “Working Files” subfolder, it effectively searched for a path like .../Working Files/Working Files, which did not exist. This caused the “Get Folder Details” action to fail, and a 404 error was returned by the external storage API. ### How to fix this issue - Ensure that the correct parent folder is linked to the Salesforce record. - Avoid manually connecting subfolders unless explicitly required by your logic. - Use the Disconnect / Connect Folder option in the CloudFiles widget to reset and relink the folder properly. - After updating the folder connection, re-run or debug your flow to confirm that the 404 error is resolved. --- # Admin Approval Required Error when connecting to SharePoint https://help.cloudfiles.io/salesforce/admin-approval-required-error-when-connecting-to-sharepoint # Admin Approval Required Error when connecting to SharePoint Explains why Microsoft's "Admin Approval Required" error appears when connecting to SharePoint and how an Azure Administrator can grant consent to fix it. > Kind: FAQ · Updated: Jul 4, 2026 ## What is the Issue? Some users may see the following Microsoft prompt when trying to access SharePoint through the CloudFiles widget inside Salesforce: “CloudFiles needs permission to access resources in your organization that only an admin can grant. Please ask an admin to grant permission to this app before you can use it.” ![](https://media.help.cloudfiles.io/faq-admin-approval-required-error-when-connecting-to-sharepoint-sf/01.png) This message appears even if the user is a Salesforce admin and has an active CloudFiles license. It is not related to Salesforce permissions, CloudFiles roles, or CloudFiles license status. ## Why does it happen? This message is generated by Microsoft Azure, not CloudFiles. CloudFiles connects to SharePoint and OneDrive using Microsoft’s OAuth permissions model. For some organizations, Azure security policies block third-party applications from accessing Microsoft resources unless an Azure Global Admin or Azure App Administrator explicitly approves the app. In other words: - You may be a Salesforce admin, but Azure has not granted your tenant permission for CloudFiles to access SharePoint. - Until an Azure admin approves CloudFiles, Microsoft will block the connection and show the “Admin approval required” message. ## How to fix this Issue An Azure Administrator must grant consent for CloudFiles to access SharePoint for your organization. ## Step 1: Share this link with your Azure Admin Ask your Azure Global Admin / App Admin to open the following URL in their browser: https://login.microsoftonline.com/common/adminconsent?client_id=eb406824-efe3-4989-8247-b80f25f73ae2 This link takes them to Microsoft’s admin consent screen for CloudFiles. ## Step 2: Admin signs in and approves The Azure admin must: - Sign in with their Microsoft admin account - Review the required permissions - Click Accept to grant consent ## Step 3: Retry the SharePoint connection Once approved, any licensed CloudFiles user can connect seamlessly to SharePoint from within Salesforce—no further Microsoft approvals will be needed. --- # CloudFiles Widget show "You need CloudFiles license to access this widget" Message https://help.cloudfiles.io/salesforce/cloudfiles-widget-show-you-need-cloudfiles-license-to-access-this-widget-message # CloudFiles Widget show "You need CloudFiles license to access this widget" Message Explains why users see the "You need CloudFiles license to access this widget" error in Salesforce and how admins can fix it by registering the user via the widget/LWC and activating their license in User Management. > Kind: FAQ · Updated: Jul 4, 2026 ## What is the issue? A common issue users face after setting up CloudFiles in Salesforce is that some users are unable to access the CloudFiles widget or Lightning components. They often see the below error message when trying to interact with it: “You need CloudFiles license to access this widget. Please contact your account admin to assign you the license.” ![](https://media.help.cloudfiles.io/faq-cloudfiles-widget-show-you-need-cloudfiles-license-to-access-sf/01.png) ## Why does this happen? They are unable to use CloudFiles features even though the package is installed and active org-wide. This happens when: - The user has not been registered in CloudFiles yet - The license is not assigned under the 'User Management' sidebar - The user’s license status is 'Inactive' ## How to fix this issue? ### 1. If the user not registered For a user to be registered and appear under User Management, they must first access any of CloudFiles' Lightning Web Components (LWCs) within Salesforce. As long as CloudFiles is installed, the user simply needs to click on the Widget placed on any record page. This interaction automatically registers the user in CloudFiles, making them visible in the User Management tab. ### 2. If the license status is 'Inactive' Once registered, the Admin needs to activate their license by navigating to the CloudFiles App > Document Management/Generation/AI tab > User Management, and toggling their license status from ‘Inactive’ to ‘Active’. ![](https://media.help.cloudfiles.io/faq-cloudfiles-widget-show-you-need-cloudfiles-license-to-access-sf/upload-0d0600a8.webp) Please refer to our article on License Management for more details. --- # Common issues in 'Create Folder' flow action and how to resolve them https://help.cloudfiles.io/salesforce/common-issues-in-create-folder-flow-action-and-how-to-resolve-them # Common issues in 'Create Folder' flow action and how to resolve them This article covers the most common errors that can occur when executing a flow with the Create Folder action, along with clear steps to troubleshoot and resolve them. > Kind: FAQ · Updated: Jul 4, 2026 ## Overview When creating a folder, you may occasionally encounter different types of errors depending on permissions, flow action configurations, or input parameters. This article covers the most common errors that can occur when executing a flow with the Create Folder action, along with clear steps to troubleshoot and resolve them. Each example includes a description of the issue, the reason it occurred, and the steps we took to resolve it. ## Example 1: Error Code 429 – Too Many Requests to Dropbox ### 1. What was the issue? A customer reported receiving multiple error notification emails from Salesforce whenever a new record triggered the folder creation process. The error consistently appeared at the step where a new Dropbox folder was supposed to be generated. Instead of completing the folder creation and linking it back to Salesforce, the flow returned the following error message: cldfs.CloudFilesException: {"statusCode":429,"message":"Something went wrong"} ![](https://media.help.cloudfiles.io/faq-common-issues-in-create-folder-flow-action-and-how-to-resolv-sf/01.png) In some instances, a new folder was still created in Dropbox, but it did not have the expected naming format, and the Salesforce record was not automatically connected to the new folder, forcing the customer to manually attach it. The issue only occurred intermittently, usually when multiple application records were created at the same time. ### 2. Why did it occur? The error was caused by Dropbox API rate limiting. - Dropbox applies a limit on how many API (folder creation) requests can be made within a short time window. - When the flow attempted to create several folders simultaneously (for example, when multiple users submitted forms around the same time), the number of requests exceeded Dropbox’s allowed threshold. - As a result, Dropbox returned a 429 “Too Many Requests” error, which caused Salesforce to stop the process prematurely and the flow to fail. ### 3. How was it fixed? To resolve this issue and prevent future failures, we implemented the following changes: - Updated the flow to use the Create Folder (async) action instead of the synchronous Create Folder action. - The asynchronous action queues folder creation requests and processes them in the background rather than firing them all at once. - This prevents the flow from hitting Dropbox’s request limits. - Configured the folder-created event: - Once the async action completes, it triggers a platform event indicating that the folder has been successfully created. - Created a secondary flow that listens for this event. - This second flow can then execute the Create Attachment action to properly attach the newly created Dropbox folder to the corresponding Salesforce record. - Testing confirmed that switching to the async action eliminated the 429 errors, as requests were distributed more efficiently and no longer exceeded Dropbox’s limits. ## Example 2: Error Code: 404- Something went wrong ### 1. What was the issue? A customer reported running into repeated errors when attempting to create folders using the CloudFiles integration in Salesforce. Each time the flow tried to execute the folder creation step, the process failed and displayed the following error: cldfs.CloudFilesException: {"statusCode":404,"message":"Something went wrong"} Because of this, the folder creation process would stop midway, preventing the automation from completing successfully. This not only disrupted their workflow but also left related records without their expected folder structure in SharePoint. ### 2. Why did it occur? There are 2 potential reasons for this type of error: - The parent folder (under which record folder needs to be created) being referenced in the flow does not actually exist in external storage. - The Integration User connected to CloudFiles does not have the necessary permissions to access or create the folder. When either of these situations is true, CloudFiles is unable to complete the folder creation request, which caused Salesforce to throw the error during execution. On further investigation, the issue was traced back to the CloudFiles integration user access. ### 3. How was it fixed? Upon reviewing the setup, it was confirmed that the problem was related to folder access permissions for the Integration User. Specifically, the Integration User didn’t have sufficient rights to create or modify the folder in question. Once the permissions were corrected and the Integration User was given the required access, the folder creation action began working as expected. After the fix, the flow was able to create the necessary folders without errors, and the automation continued smoothly. ## Example 3: Expired SharePoint Connection Causing Folder Creation Failure ### 1. What was the issue? The customer reported that their "Folder creation for new opportunity” flow failed when trying to create a folder in SharePoint.The error message showed: An Apex error occurred: cldfs.JSONParse.MissingKeyException: No match found for : {} ![](https://media.help.cloudfiles.io/faq-common-issues-in-create-folder-flow-action-and-how-to-resolv-sf/02.png) Because of this error, the folder creation automation stopped and no new folders were being created for opportunities. ### 2. Why did it occur? The error occurred because the SharePoint connection in CloudFiles had expired. When the connection between Salesforce (via CloudFiles) and SharePoint expires: - CloudFiles can no longer authenticate with SharePoint. - The API call that attempts to create or update a folder in SharePoint fails. - This results in missing or invalid keys being passed back to Salesforce, which then triggers the cldfs.JSONParse.MissingKeyException error in the flow. So, even though the Salesforce flow setup was correct, the expired connection prevented successful execution. ### 3. How was it fixed? To resolve the issue, the customer followed these steps: - Reconnect the SharePoint account: - Navigate to: Document Management > Libraries > SharePoint > Disconnect and then Reconnect. - This re-established authentication between CloudFiles and SharePoint. - Refresh the flow: - After reconnecting, the flow in Salesforce was refreshed so it could pick up the new connection. - Verification: - The customer retried the folder creation automation. - The error no longer occurred, and folders were successfully created in SharePoint as expected. ![](https://media.help.cloudfiles.io/faq-common-issues-in-create-folder-flow-action-and-how-to-resolv-sf/03.gif) ## Example 4: Create folder action error due to DML executed first in the flow ### 1.What was the issue? A Salesforce flow was set up to automatically generate structured SharePoint folders through CloudFiles. The intent of this flow was straightforward: whenever a new record was created or updated, it would first check whether a corresponding folder already existed, and if not, create one. However, during execution, the CloudFiles Create Folder action consistently failed resulting in the following error: An Apex error occurred: System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out Because of this, the flow could not continue to subsequent steps, resulting in incomplete automation and disruption to the intended folder creation process. ![](https://media.help.cloudfiles.io/faq-common-issues-in-create-folder-flow-action-and-how-to-resolv-sf/04.png) ### 2. Why did it occur? The folder creation was failing because of the order in which actions were placed in the Salesforce flow. Specifically, a record update (DML operation) was executed before the CloudFiles Create Folder action. Salesforce enforces a strict rule that external callouts, like CloudFiles actions, cannot be made after a pending database operation (DML) has already been performed. In this case, the flow first updated a field on the record and then attempted to call the CloudFiles Create Folder action. Since the record update was processed before the folder creation step, Salesforce blocked the callout, which resulted in the folder creation failure. ![](https://media.help.cloudfiles.io/faq-common-issues-in-create-folder-flow-action-and-how-to-resolv-sf/05.png) ### 3. How was it fixed? The resolution involved adjusting the order of operations within the Salesforce Flow. Specifically, the CloudFiles Create Folder action needed to be executed before any record update (DML) actions were performed. By restructuring the sequence in this way, the flow first completed the external callout to CloudFiles to create the SharePoint folder, and only after that step succeeded, it moved on to updating fields on the Salesforce record. This sequencing ensured the flow worked in line with Salesforce’s platform guidelines, which require external callouts to finish before any DML operations are carried out. Once the change was implemented, the folder creation action executed successfully, the automation continued without interruption, and the overall process worked as originally intended. Another scenario of this same error occurred when mixing loops, DML operations, and callouts in the same flow. You can read about it in our article here: System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out ## Example 5: Folder creation fails due to quotation marks in the folder name When creating a folder in SharePoint via the CloudFiles flow, you may encounter an error if the folder name contains unsupported characters. This article explains the cause of the error and how to resolve it. ### 1. What was the issue? A customer reported that their Salesforce flow to create SharePoint folders failed at the CloudFiles_Create_Folder (FlowActionCall) step. The flow returned the following error: An Apex error occurred: cldfs.CloudFilesException: {"message":"Folder creation failed","error":"Bad Request","statusCode":400} The customer’s folder path included quotation marks, for example: Project "Alpha xy" Phase abc Despite the record existing in Salesforce, the folder was not created in SharePoint. ### 2. Why did it occur? SharePoint does not support certain special characters, such as quotation marks, in folder names. When a folder name contains invalid characters, the CloudFiles flow cannot create the folder, which triggers the Bad Request (400) error. ![](https://media.help.cloudfiles.io/faq-common-issues-in-create-folder-flow-action-and-how-to-resolv-sf/06.png) ### 3. How was it fixed? The issue was resolved in the live environment. Our backend team made updates to the CloudFiles flow to properly handle folder names that include previously unsupported characters, specifically quotation marks. With this change: - The system now parses folder names correctly even when they contain quotation marks. - Folder creation in SharePoint no longer fails due to these characters. - Users can continue to use their existing Salesforce flows without manual adjustments for quotation marks in folder names. These changes were carefully implemented and tested to ensure they do not affect other folder naming conventions or introduce new errors. The flow now validates folder names against SharePoint restrictions and automatically processes names with quotation marks, reducing the chances of encountering errors during creation. Summary Invalid characters in folder names, like quotation marks, previously prevented successful folder creation in SharePoint. With the backend fix now live, CloudFiles flows can handle such folder names reliably. Users can continue using quotation marks without causing errors, while other unsupported characters should still be avoided. --- # Context User License Failure in Salesforce Automation https://help.cloudfiles.io/salesforce/context-user-license-failure-in-salesforce-automation # Context User License Failure in Salesforce Automation CloudFiles blocks Salesforce automation actions when the context user running the automation lacks an assigned CloudFiles license, throwing a "doesn't have a product license" error; fix by identifying and licensing the context user. > Kind: FAQ · Updated: Jul 4, 2026 ## What is the issue? CloudFiles users may encounter automation failures when Salesforce flows, process builders, or other automation tools attempt to execute CloudFiles actions (such as creating account folders or managing documents). The error typically appears as: "Bad Request: Context user [user@email.com] doesn't have a product license" ![](https://media.help.cloudfiles.io/faq-context-user-license-failure-in-salesforce-automation-sf/01.png) The product referenced will be one of: - Document AI - Document Management - Document Generation Admins receive an error email notification when this occurs, and the automation fails to complete. ## Why does this happen? CloudFiles enforces mandatory license checks on all Salesforce automation actions. When a Salesforce automation executes a CloudFiles action, the context user (the user whose context the automation runs under) is passed to CloudFiles. If this user doesn't have an assigned CloudFiles license, the action is blocked and an exception is thrown. This check prevents license abuse where unlimited users could create folders or use CloudFiles features through automation with only a minimal number of licenses purchased. > **Note** — This check applies only to users with Salesforce licenses. Community users, guest users, and integration users are excluded from this validation. ## How to fix this issue? To resolve context user license failures and restore automation functionality: ## 1. Identify the Context User Review the error email sent to admins, which will identify the specific user (email address) who needs a license. ## 2. Assign a License to the User Navigate to CloudFiles license management and assign an appropriate license (Document AI, Document Management, or Document Management) to the identified user. If you have auto-assignment enabled and available licenses in your plan, licenses will be automatically assigned when the automation runs again. You can also assign these licenses manually. Go to CloudFiles App → [Product] tab → User Management, click the pencil icon beside the License Status of a user, select Active or Inactive, then click Save. Need more help assigning licenses? Refer to the license management articles for: - Document Management - Document AI - Document Generation ## 3. If No Licenses Are Available If you've consumed all licenses in your current plan, you'll need to purchase additional licenses or reallocate existing ones. Contact your CloudFiles sales representative or reach out to support for assistance with upgrading your plan. > **Note: Special Case: Page-Based or Process-Based Licensing** — For Document AI, some customers have licensing based on pages processed or other consumption metrics rather than per-user licenses. For these customers, this automation check may be disabled.If you have page-based or process-based licensing and are still encountering this error, please contact CloudFiles support or check with your sales representative to verify your licensing type and ensure the appropriate configuration is in place.Once a valid license is assigned to the context user, retry the automation. The CloudFiles action should now complete successfully without errors. --- # "Email Not Verified” Error When Connecting Salesforce to CloudFiles https://help.cloudfiles.io/salesforce/email-not-verified-error-when-connecting-salesforce-to-cloudfiles # "Email Not Verified” Error When Connecting Salesforce to CloudFiles This error appears when attempting to connect CloudFiles with Salesforce, especially in Sandbox Environments, and typically affects the Salesforce user who is installing or connecting the CloudFiles app. > Kind: FAQ · Updated: Jul 4, 2026 This error appears when attempting to connect CloudFiles with Salesforce, especially in Sandbox Environments, and typically affects the Salesforce user who is installing or connecting the CloudFiles app. ### What is the error and why does this happen? Error: cldfs.CloudFilesException: {"message":"Email not verified","error":"Unauthorized","statusCode":401} ![](https://media.help.cloudfiles.io/faq-email-not-verified-error-when-connecting-salesforce-to-cloud-sf/01.png) This is a security check enforced by CloudFiles to ensure that the connecting Salesforce user's email is verified. It happens only in sandbox environments as Salesforce wouldn't allow you to create a production user without email verification. ### How to fix this issue? To resolve the error, you simply need to verify your email address in Salesforce: - Log in to Salesforce with the user facing the error - Go to your user settings by clicking your avatar > Settings - Click Personal Information - Next to your email address, click Verify (if available) - Check your email inbox and complete the verification link Refer the Salesforce article for more information to Verify User Email Addresses. --- # Experience Cloud file upload failure https://help.cloudfiles.io/salesforce/experience-cloud-file-upload-failure # Experience Cloud file upload failure CloudFiles users uploading files via Salesforce Experience Cloud to SharePoint may see upload failure errors caused by insufficient SharePoint permissions or misconfigured CloudFiles library connections. > Kind: FAQ · Updated: Jul 4, 2026 ## What is the Issue? CloudFiles users attempting to upload files through Salesforce Experience Cloud to SharePoint might encounter upload failures with various error messages, including: - "Upload failed error" - Generic "Something went wrong" upload error messages without specific details ![](https://media.help.cloudfiles.io/faq-experience-cloud-file-upload-failure-sf/01.png) These errors typically indicate that the Experience Cloud user lacks sufficient permissions to upload files to the connected SharePoint site or library, or there are configuration issues with the CloudFiles integration. ## Why does this happen? The upload failure errors in Experience Cloud can occur when CloudFiles cannot successfully upload files to SharePoint due to several reasons: - Experience Cloud user lacking required SharePoint permissions - Incorrect or broken CloudFiles library connection configuration This error doesn't indicate a bug in CloudFiles but rather a permissions or configuration issue between the Experience Cloud user, CloudFiles integration, and the target SharePoint location. ## How to fix this issue? To resolve Experience Cloud upload failures and restore functionality: ### 1. Verify Experience Cloud user SharePoint access: - Have the affected user navigate directly to the target SharePoint site - Test if they can upload a file directly in SharePoint outside of CloudFiles - If they cannot upload directly, this confirms a SharePoint permissions issue ### 2. Grant proper SharePoint permissions: - Contact your SharePoint administrator to grant the user "Contribute" or "Edit" permissions on the target document library - Ensure the user's SharePoint account is properly linked to their Experience Cloud ### 3. Verify CloudFiles configuration: - Navigate to CloudFiles App → Document Management → Libraries - Confirm the SharePoint site is connected - Ensure the integration user has sufficient permissions to upload files to the target location Once permissions are updated, have the Experience Cloud user retry the file upload through CloudFiles. The upload should now complete successfully without errors. --- # Failed flow is executing multiple times https://help.cloudfiles.io/salesforce/failed-flow-is-executing-multiple-times # Failed flow is executing multiple times Learn how to prevent multiple executions of actions in CloudFiles when error notifications for failed flows appear, since Salesforce automatically retries failed flows with no way to disable this behavior. > Kind: FAQ · Updated: Jul 4, 2026 Sometime you might see multiple error notifications for the failed flows. It would even execute all CloudFiles related actions each time. The reason for this is that Salesforce retries the failed flows automatically within 15 mins, then extending to 30 mins, then 1 hour, then 2 hours then stops retrying. Unfortunately, there is no way to turn this behaviour off. It is discussed here on Trailblazer community At CloudFiles, we're working to handle this better, so we avoid running CloudFiles actions multiple times in this situation. A workaround for now is to test the flows thoroughly before activating in production, so the failure chances are minimized. --- # "Invalid Refresh Token" Error in Flow https://help.cloudfiles.io/salesforce/invalid-refresh-token-error-in-flow # "Invalid Refresh Token" Error in Flow This error occurs when CloudFiles cannot access the storage provider due to an expired or invalid refresh token, and is fixed by reconnecting the integration user in the Document Management Libraries settings. > Kind: FAQ · Updated: Jul 4, 2026 ## Overview This error commonly appears when users run flows with CloudFiles actions like Create Folder, Copy File, or Attach File on standard objects such as Account, Contact, or Opportunity, and occurs when CloudFiles cannot access the storage provider due to an expired or invalid authentication token (refresh token). ### What is the error and why does this happen? This error is usually received as part of a flow failure email or debug log when a CloudFiles action step is triggered. Apex Error: cldfs.CloudFilesException:{"message":"Invalid refresh token","statusCode":400} or cldfs.CloudFilesException:{"error":"Invalid refresh token","code":"INVALID_REFRESH_TOKEN"} ![](https://media.help.cloudfiles.io/faq-invalid-refresh-token-error-in-flow-sf/01.png) CloudFiles uses OAuth to securely integrate with external storage providers (SharePoint, Google Drive, Dropbox, etc.), relying on a refresh token to maintain the connection without repeatedly asking for credentials. This error occurs when the connected storage account's refresh token has expired or been revoked, when someone manually disconnects or reconnects the storage user incorrectly, or when the wrong user account is used during reconnection (such as a user from a different Salesforce Org). ### How to fix this issue? You'll need to reconnect the system (integration) user: - Open the CloudFiles app from App Launcher in Salesforce - Navigate to the Document Management tab (top navigation bar) - In the left sidebar, click on Libraries - Select the affected storage library (e.g., SharePoint) and click Disconnect. - Reconnect the integration user by clicking Connect and log in using the correct account's credentials. Once connected, re-run the flow to confirm the issue is resolved. ![](https://media.help.cloudfiles.io/faq-invalid-refresh-token-error-in-flow-sf/02.gif) --- # Salesforce-CloudFiles connection Issues: Flow actions not triggering even though flow is configured correctly. https://help.cloudfiles.io/salesforce/salesforce-cloudfiles-connection-issues-flow-actions-not-triggering-even-though-flow-is-configured-correctly # Salesforce-CloudFiles connection Issues: Flow actions not triggering even though flow is configured correctly. Salesforce flows that previously worked with CloudFiles may stop triggering actions if the Salesforce Connection is incorrect, disconnected, or linked to the wrong Org — reconnecting the correct Salesforce Connection User resolves the issue. > Kind: FAQ · Updated: Jul 4, 2026 ## What is the Issue? Sometimes, Salesforce flows that previously worked correctly with CloudFiles suddenly stop executing certain actions — such as copying files, processing documents, or triggering any other flow actions, even though everything appears to be configured correctly. In these cases, events may be trgiggered, but follow-up flow actions fail to run as expected. These flows often continue to work correctly in one Org (such as a Dev or Sandbox environment), but fail in another (Production), without generating any visible errors in Salesforce or CloudFiles. ## Why does this happen? CloudFiles requires an active and correctly configured Salesforce connection to perform automations. If the Salesforce Connection is incorrect, disconnected, from a different Salesforce Org (wrong Org ID), or if someone logs into the Salesforce OAuth connection screen using the wrong credentials, the workflows will not function as expected. ## How to fix this issue? To resolve the issue, you’ll need to reconnect the correct Salesforce Connection User: - Go to the CloudFiles App within your Salesforce Org. - Navigate to Settings tab > Account. - In the Salesforce Connection section, click Reconnect. - Click Connect and log in with the correct Salesforce user account credentials for your current Org. - Once reconnected, re-run the flow that was previously failing. This ensures the CloudFiles flow actions are executed using the appropriate permissions and environment. ![](https://media.help.cloudfiles.io/faq-salesforce-cloudfiles-connection-issues-flow-actions-not-tri-sf/01.png) --- # System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out https://help.cloudfiles.io/salesforce/systemcalloutexception-you-have-uncommitted-work-pending-please-commit-or-rollback-before-calling-out # System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out Explains why Salesforce flows using CloudFiles actions throw "System.CalloutException: You have uncommitted work pending" when DML operations occur before an API callout, and how to fix it by reordering flow elements or restructuring platform-event triggers. > Kind: FAQ · Updated: Jul 4, 2026 ## What is the issue? Salesforce flows that include CloudFiles actions may fail to execute and return the following error when is made after performing DML operations (insert/update/delete) are performed before a CloudFiles API callout (like folder creation or document generation) within the same transaction: An Apex error occurred: System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out ![](https://media.help.cloudfiles.io/faq-system-calloutexception-you-have-uncommitted-work-pending-pl-sf/01.png) This is a standard Salesforce platform limitation that restricts external callouts (such as API requests made by CloudFiles to SharePoint, OneDrive, or Google Drive) after any uncommitted DML (Data Manipulation Language) operation in a synchronous flow or Apex transaction. ## Why does this happen? The error occurs when a Salesforce transaction tries to perform an API callout (to an external system) after modifying records (via create, update, or delete operations) but before completing that transaction. Since Salesforce enforces strict transaction boundaries, such callout behavior is not permitted unless the DML changes are committed first or the callout is moved earlier in the sequence. This is not a CloudFiles-specific bug but a Salesforce platform restriction that impacts any external integration performing callouts after DML. There are 2 common patterns or root causes for this - - DML Element (Update/Create Record) is placed before CloudFiles Callouts - Errors Specific to Platform Event–Triggered Flows ## 1. DML Element (Update/Create Record) is placed before CloudFiles Callouts When a record update or creation step is positioned before any CloudFiles callout (such as Create Attachment, Generate Document, Copy or Move Resource etc.) in a flow, it violates Salesforce's callout execution order. This typically happens in flows that: - Attempt to update a related object before fetching a CloudFiles folder path - Use "Update Records" or "Create Records" immediately after file upload triggers - Mix data writes and external callouts in the wrong sequence Salesforce requires all API callouts to be made before any database changes (DML) occur within the same transaction. When this sequence is violated, Salesforce halts execution and throws the error, indicating that uncommitted changes are pending. ### Example Scenario 1 - Updating a record before creating the CloudFiles folder: In this case, a customer had implemented a flow designed to create structured SharePoint folders using CloudFiles actions. The flow was configured to: - Identify the type of record, and check if a folder exists for it or not - Update a field on that record using an Update Records element - Then call the CloudFiles Create Folder action to create and organize the record's associated folder in SharePoint. ![](https://media.help.cloudfiles.io/faq-system-calloutexception-you-have-uncommitted-work-pending-pl-sf/02.png) The problem occurred because the Update Records element (UpdateComplexValueCom) was placed before the CloudFiles Create Folder action. Because the DML update happened prior to the external callout, the flow violated Salesforce's strict order-of-execution rules for callouts. ![](https://media.help.cloudfiles.io/faq-system-calloutexception-you-have-uncommitted-work-pending-pl-sf/03.png) ### How was the issue fixed? To fix the issue, the flow was updated to: - Move the CloudFiles Create Folder action to execute before the Update Records (UpdateComplexValueCom) DML element - Ensure that all record updates occurred only after the external callout completed successfully This change brought the flow into alignment with Salesforce's platform requirements and resolved the uncommitted work pending error during execution. ### Example Scenario 2- Mixing DML and Callouts in a loop In one case, a customer created a screen flow to select a bunch of records, generate documents, and create SharePoint folders for those records. The flow was designed using a loop to parse through the list of selected records and perform appropriate actions. The flow was designed to: - Parse through each record using a Loop element to: - Get the selected records using the Get Records element (e.g., selected records with their metadata), - Use Assignment elements to set variables and build a collection of CloudFiles key–value pairs (metadata for doc generation) - For each record that didn't already have an associated folder: - Call the CloudFiles Create Folder flow action to create a SharePoint folder, - Call the Create Attachment action to link that folder to the record, - Add document metadata using a collection variable (e.g., CloudFilesVariable[]) prepared earlier, - Use the Generate Document (Sync) CloudFiles action to create and store a PDF in the folder in real time. The problem occurred because the flow executed this sequence: Create Folder (callout) → Create Attachment (DML) → Generate Document (Sync) (callout). Salesforce doesn't allow a callout after DML operations in the same transaction. Because the flow mixed a callout, then a database update, and then another callout, Salesforce threw the "You have uncommitted work pending" error. ### How was the issue fixed? The flow was restructured to incorporate the following sequence - - Switched to the asynchronous Generate Document (Batch) instead of the Generate Document (Sync) action. This action is asynchronous and processes multiple entries at once, working in the background. - Kept folder creation and attachment logic inside the loop as it already was. - Ran document generation asynchronously at the end. After the loop, passed the batch-list to Generate Document (Batch) action. The flow ended quickly, and the documents were generated in the background By switching to the Generate Document (Batch) action, the flow completed immediately while document creation ran asynchronously in the background. This approach eliminated delays caused by generating PDFs during the flow. More importantly, it prevented the dreaded "uncommitted work pending" error because no callouts occured after DML operations. ## 2. Errors Specific to Platform Event–Triggered Flows In platform event–triggered flows, "You have uncommitted work pending" often occurs even without an explicit Update/Create step because implicit DML (inside invocable Apex or misrouted triggers) leaves the transaction "dirty" before a CloudFiles callout (e.g., Get Connected Folder, Generate Document). Since Salesforce requires callouts before any DML in the same transaction, the callout is blocked. As these actions are implicit, it becomes quite difficult to debug in such cases. To rectify, one needs to align triggers (or use a record-triggered flow on the CloudFiles custom object) and ensure callouts run first, with updates happening afterward or in a separate async path. You can read more about the different approaches to intercept events in our help article - Intercepting CloudFiles Events. ### Example Scenario 3 - Platform Event misconfiguration causing DML before Callouts: In this case, a customer had deployed a series of CloudFiles-integrated Salesforce flows designed to process uploaded files and update related records. The architecture involved multiple flows chained together, with the intent to: - Trigger an intermediary flow when a file upload was completed. - Perform record lookups and update fields on the record. - Execute actions such as file processing, matching, and metadata updates via API callouts. On uploading a file and proceeding with the flow, the execution failed. Upon investigation, it was found that: - The second flow in the chain was configured to be a Platform-Event triggered flow, but the actual file upload was occurring on a custom object tied to CloudFiles. - Because the second flow was not triggering as expected, record updates meant to happen asynchronously (in that second flow) were instead being performed synchronously within the first flow. - As a result, DML operations (like field updates) were happening before CloudFiles API callouts, violating Salesforce's transaction rules which require callouts to occur before any uncommitted changes. ### How was the issue fixed? - Corrected the Trigger Source on the Flow: The intermediary flow was reconfigured to trigger on the custom object instead of the default platform event. This ensured that the flow chain executed properly and that actions were distributed across flows as originally designed. - Separated Record Updates from Callouts: By restoring the intended flow behavior, record updates and validations were offloaded to the second flow, keeping the initial flow clean of any DML before calling CloudFiles actions. - Validated Platform Events & Object Triggers: The team reviewed all flow triggers to ensure that CloudFiles events were correctly mapped to the expected object events. This prevented synchronous processing paths from executing unintended logic. Once these adjustments were made, the uncommitted work error no longer occurred during the callout, and the CloudFiles actions completed successfully. ### Example Scenario 4 - Implicit writes in a Platform Event transaction before a callout In this case, a Platform Event triggered flow was designed to move files from Salesforce to SharePoint automatically after a file was uploaded. The triggere looked out for 'salesforce-file-attached' and proceeded as follows: - A Decision element determined the appropriate event type - The Apex action Get Event Details was used to retrieve the file upload metadata - After that, the flow attempted to execute the CloudFiles flow action Get Connected Folder, which performs an external API callout The failure likely happened because the transaction had uncommitted work before the callout. Even though the flow doesn't show an explicit DML step, something in that same event transaction likely performed implicit DML—for example, logic inside an invocable Apex/action, or Salesforce's own record creations/updates tied to the event. Once that hidden write occurs, the transaction contains uncommitted changes, so when the flow tries the external callout (e.g., Get Connected Folder), Salesforce blocks it and throws "You have uncommitted work pending." ![](https://media.help.cloudfiles.io/faq-system-calloutexception-you-have-uncommitted-work-pending-pl-sf/04.png) ### How was the issue fixed? To resolve the issue, the flow was restructured based on Salesforce best practices: - A new Record-Triggered Flow was created on the Custom Object (cldfs__CloudFilesEvent__c) to handle the same event. - The CloudFiles Event Mode was changed from "Platform Event" to "Custom Object" so that the record-triggered flow would execute correctly. This adjustment ensured that the callout was performed in a supported transaction context, eliminating the uncommitted work pending error. ![](https://media.help.cloudfiles.io/faq-system-calloutexception-you-have-uncommitted-work-pending-pl-sf/05.png) --- # Thumbnails not working in LWC https://help.cloudfiles.io/salesforce/thumbnails-not-working-in-lwc # Thumbnails not working in LWC This usually happens because certain URLs used to fetch thumbnails are not added in the trusted URLs; adding them resolves the issue. > Kind: FAQ · Updated: Jul 4, 2026 This usually happens because certain URLs (which are used to fetch thumbnails) are not added in the trusted URLs. To resolve this issue, follow the steps - - Go to Setup > Trusted URLs - Create a new trusted URL - Add https://*.svc.ms in URL - Make sure img-src checkbox is selected Once this is added, your thumbnails should start working correctly. See image below for reference. ![](https://media.help.cloudfiles.io/faq-thumbnails-not-working-in-lwc-sf/01.png) --- # Why are all my users seeing admin settings? https://help.cloudfiles.io/salesforce/why-are-all-my-users-seeing-admin-settings # Why are all my users seeing admin settings? Explains why all Salesforce users may see admin settings (installed as "All Users" instead of "Admins Only") and how to fix it by uninstalling and reinstalling CloudFiles with the correct access level. > Kind: FAQ · Updated: Jul 4, 2026 ## What is the Issue? A common concern we get is that all users in an organization are able to see the entire admin panel with all its configuration settings. These configurations are ideally meant just for the administrators, and general users should not be able to see or modify them. ![](https://media.help.cloudfiles.io/faq-why-are-all-my-users-seeing-admin-settings-sf/01.png) ## Why did this happen? This issue usually arises due to a misconfiguration during the initial installation of the CloudFiles app on Salesforce. When installing the app, Salesforce prompts the installer to choose a user access level. If the installer selects “Install for All Users” instead of “Install for Admins Only”, then all users in the Salesforce org are granted admin-level access to the CloudFiles app, including visibility of admin-specific tabs and settings. This option overrides default permission controls, giving every user unintended access to all configuration settings. ![](https://media.help.cloudfiles.io/faq-why-are-all-my-users-seeing-admin-settings-sf/02.png) ## How to rectify the issue? The way to rectify this is to uninstall the CloudFiles app and reinstall again. ## 1. Uninstall CloudFiles To uninstall CloudFiles from Salesforce, you need to remove all CloudFiles components/flows and then uninstall the managed package within Salesforce. - Deactivate any flows using CloudFiles actions (if applicable): - Go to Setup > Flows. - Identify flows that use CloudFiles flow actions and deactivate them. - Also, remove the CloudFiles LWC component from all record pages it’s been added to. - Remove the package: - Go to Setup > Installed Packages. - Locate the CloudFiles managed package. - Click “Uninstall”, and on the uninstall page, confirm the removal of all related components. ## 2. Re-install CloudFiles To re-install, follow the recommended approach: - After clicking Install in Sandbox or Install in Production, Salesforce will take you to the installation wizard. - When prompted to choose a user access level, always select: “Install for Admins Only”. > Don't worry, all your users will still be able to access CloudFiles. This just allows you to better control permissions and assign the right access using permission sets. You can also refer to app specific installation guides for detailed instructions- Document Management | Document Generation | Document AI Post installation, you can use the CloudFiles permission sets to assign access to users based on their roles and responsibilities. More details regarding the permission sets referenced here. --- # CloudFiles Implementation Support https://help.cloudfiles.io/salesforce/cloudfiles-implementation-support # CloudFiles Implementation Support Learn about the three options for implementing CloudFiles: following the documentation yourself, booking a call with the CloudFiles team, or granting temporary access to your Salesforce account. > Kind: Guide · Updated: Jul 4, 2026 CloudFiles team is always available to help you with the implemetation. Folloiwng is a list of all the implementation options available to you - - Do it yourself - We've an extensive documentation on our support portal. It includes documetation on installation, setting up atuomations & data migration(Adapting your existing Salesforce data & files to work with CloudFiles). You can follow the aticles on the portal to setup everything by yourself. Except installation, the automations & data migration are advanced topics and would require familiarity with Salesforce flow builder - Book a call with us - You can book a 45 mins session with us using the link meet.cloudfiles.io/salesforce. On this call, you would be sharing your screen and one of our solution engineers will work with you to set everything up. Based on the complexity of your use case, we might need more than 1 such session. There is no additional cost for this support option. It is provided free of cost on all paid plans. - Provide us access to your Salesforce account - This is generally the quicket option, and the easiet for you. You can provide CloudFiles team a temporary access to your Salesforce sandbox or production account, along with your use case. Our team sets up everything for you. There is no additional cost for this support option. It is provided free of cost on all paid plans. We take user privacy and compliances very seriously. When you provide us the access to your Salesforce account, we do not interact with your data. Our access is governed by various policies and compliance. You can learn more about it on our trust center - trust.cloudfiles.io Please follow the article How to give CloudFiles Support the access to your Salesforce account to provide us the access. --- # How to give CloudFiles Support the access to your Salesforce account https://help.cloudfiles.io/salesforce/how-to-give-cloudfiles-support-the-access-to-your-salesforce-account # How to give CloudFiles Support the access to your Salesforce account Learn how to grant access to your Salesforce account for setup or troubleshooting to the CloudFiles team. > Kind: Guide · Updated: Jul 4, 2026 Sometime you may want to give CloudFiles team the access to your Salesforce account for setup or troubleshooting an issue. We take user privacy and compliances very seriously. When you provide us the access to your Salesforce account, we do not interact with your data. Our access is governed by various policies and compliances. You can learn more about it on our trust center - trust.cloudfiles.io Please follow the instructions below to give us the access to your Salesforce account - - Open user settings by clicking on your profile icon in top right ![](https://media.help.cloudfiles.io/sup-how-to-give-cloudfiles-support-the-access-to-your-salesforce-sf/01.png) - Click on "Grant Account Login Access" in left sidebar ![](https://media.help.cloudfiles.io/sup-how-to-give-cloudfiles-support-the-access-to-your-salesforce-sf/02.png) - Click on the dropdown next to "CloudFiles Support", and select the duration of access. Please confirm with CloudFiles team on the duration. The support response time depends on your CloudFiles plan ![](https://media.help.cloudfiles.io/sup-how-to-give-cloudfiles-support-the-access-to-your-salesforce-sf/03.png) After granting the access, please let us know via email or live chat. --- # FAQs (FAQ) https://help.cloudfiles.io/hubspot/faqs # FAQs Learn everything you need to know about integrating CloudFiles and HubSpot with this comprehensive FAQ document. Find answers to common queries and discover additional resources on billing and troubleshooting. > Kind: FAQ · Updated: Jul 8, 2026 Frequently asked questions on the CloudFiles HubSpot Integration - Product: This section answers FAQs on connecting external storage, accessing the App Dashboard, using Automation User features, and replacing files in HubSpot records. - Billing: CloudFiles is compatible with all HubSpot tiers. For specific billing inquiries, refer to the frequently asked questions section. - Troubleshooting: The FAQ addresses common troubleshooting issues in HubSpot, including errors with the content library, workflow triggering, and CloudFiles integration. Key topics include visibility of SharePoint sites, widget issues, and debugging workflows. --- # Product https://help.cloudfiles.io/hubspot/product # Product Learn how to easily access the App Dashboard from a HubSpot Record and gain valuable insights. Discover the significance of an Automation User in HubSpot and optimize your workflow efficiently. > Kind: Guide · Updated: Jun 4, 2026 Below are Frequently Asked Questions about the product. - What is an 'Automation User' and how does it work? This article explains how the Automation User powers document management automations in CloudFiles, including setup, permissions, and usage limits. - How to connect external storage from HubSpot record? To connect external storage to HubSpot records, open the CloudFiles widget on any record, click "Add," select your library (Google Drive, OneDrive, etc.), and log in to sync your files for easy access within HubSpot. - How to go to the CloudFiles App Dashboard? To access the CloudFiles App Dashboard from HubSpot, login, open any record, click the CloudFiles widget, and select "Go To CloudFiles." - How to replace files directly from HubSpot: To replace files in HubSpot using CloudFiles, go to the CloudFiles widget, select the file, click "actions," and choose "replace" to upload a new file. This updates shared content without affecting existing links or workflows. - Supported Objects in CloudFiles & HubSpot Integration: In this section, we have explained about the supported and unsupported objects in CloudFiles & HubSpot Integration. --- # What is an 'Automation User' and how does it work? https://help.cloudfiles.io/hubspot/what-is-an-automation-user-and-how-does-it-work # What is an 'Automation User' and how does it work? Answers common questions about the Automation User: what it's used for, how to authorize it for cloud drives, and its automation credit limits. > Kind: FAQ · Updated: Jun 4, 2026 The Automation User feature is designed for teams that use automations with the document management product. When a document management workflow runs, CloudFiles performs actions both in HubSpot and in the external storage platform (such as Google Drive, SharePoint, OneDrive etc). In this article, we cover a few common questions about the Automation User. ## 1 - What automations is Automation user used for? The Automation User is used to execute all CloudFiles document management actions. For example, any workflow actions performed by the app that interact with your storage library are executed using the Automation User. This includes actions such as creating folders, copying files, or associating resources with HubSpot records. All such automation tasks are carried out by the Automation User. ## 2 - How do I authorise the Automation user to use cloud drives? To use automations with external cloud drives such as SharePoint, an administrator must authorise the Automation User. Follow the steps below to authorise the Automation User: - Open the CloudFiles HubSpot app and log in as an admin. - From the top navigation bar, select Document Management. - In the left sidebar, click Integrations. - Select the cloud library you want to connect. - Click Connect. A standard authentication process will open in a new tab. - After completing the login, the cloud library will display the Connected by and Connected on details. Once this process is complete, the Automation User will be authorized to access the cloud library and can execute automations that interact with that storage platform. The process is shown in the GIF below - ![](https://media.help.cloudfiles.io/faq-automation-user-hs/01.gif) ## 3 - Will this authorize my internal users as well? No. This authorization is only used for automations. In order to access the files and folders in the respective cloud library from the CRM record, your internal users will still have to login to their cloud libraries with their respective user logins. As an example, consider that you have authorized the automation user to use SharePoint and then run an automation that creates and connects folders for all newly created CRM records. This automation creates and connects the folder to 10 CRM records. Now if your internal users try to access this folder from the CRM record, they will need to login to SharePoint using their own credentials in order to see the contents of the folder. Moreover, in case you have SharePoint permissions set such that some of the users don't have access to these folders, they won't be able to see the contents even after the login. ## 4 - What are the limits on the Automation user? The number of licenses determine how many automation actions can be executed each month. If this limit is exhausted, automations will begin to return errors until additional automation credits become available. To learn more about how automation credits work, read Automation Credits. You can also learn how to monitor your automation credit usage in the automation credit monitoring guide. --- # How to connect external storage from HubSpot record? https://help.cloudfiles.io/hubspot/how-to-connect-external-storage-from-hubspot-record # How to connect external storage from HubSpot record? Learn how to seamlessly connect your File Library from Google Drive, OneDrive, SharePoint, Box, or Dropbox to HubSpot records using CloudFiles. > Kind: FAQ · Updated: Jun 4, 2026 This is a 2-min guide to quickly connect your File Library from Google Drive, OneDrive, SharePoint, Box or Dropbox to HubSpot records by logging into your file management app through CloudFiles. CloudFiles provides a detailed user interface to login to these services and instantly sync files, attach them to records, download & upload them from records, create sharing links, get analytics and do much more right from HubSpot. To connect your libraries, go to any of your contact / company / deal / ticket record and follow these steps ## Access CloudFiles Widget on HubSpot Record CloudFiles widget is available on all standard HubSpot records. To access the widget go to any contact, company, deal or ticket record. Locate the widget on the right sidebar. Sometimes the widget might be down at the bottom. You can always drag it to the top for easy access. Once you locate the widget, click on the Add button. This will open up the CloudFiles content library dialog box where you can start connecting your file libraries. In case you don't see the CloudFiles widget on your contact / company / deal / ticket records, check out this FAQ on I cannot see the CloudFiles widget in HubSpot. ![](https://media.help.cloudfiles.io/faq-connect-storage-hs/01.png) ## Pick your library(s) You can hide / unhide the libraries that you want to see. Click on the gear icon on top left & unhide only the libraries that you want to connect with. Once you are happy with the selection, close the library picker using the cross icon on top. ![](https://media.help.cloudfiles.io/faq-connect-storage-hs/02.png) CloudFiles offers a default storage space on Amazon AWS S3 in case you do not use anything else. You can choose to disable this library as well if you only want to see your own google drive / Onedrive / SharePoint etc.. for files. ## Login to your library(s) Click on any of the library you selected. E.g. below we clicked on SharePoint. Clicking on the Connect button will open a new tab with standard the google authentication process. Once authenticated, the tab will close you will go back to your HubSpot page where the files will instantly start showing up. ![](https://media.help.cloudfiles.io/faq-connect-storage-hs/03.gif) Need help? Book time with our team of experts. --- # How to go to the CloudFiles App Dashboard? https://help.cloudfiles.io/hubspot/how-to-go-to-the-cloudfiles-app-dashboard # How to go to the CloudFiles App Dashboard? Learn how to access the CloudFiles App Dashboard for HubSpot users with this step-by-step guide. > Kind: FAQ · Updated: Jun 4, 2026 CloudFiles provides two simple ways to access the dashboard. You can either log in directly through the CloudFiles app or access it conveniently from within your HubSpot account. This guide explains both options step by step. ## Option 1 - Access from app.cloudfiles.io You can access the CloudFiles dashboard directly from https://app.cloudfiles.io. The process is simple and allows you to use your preferred sign-in method. > Tip: This method is faster for HubSpot admins and marketers as it allows direct navigation to the app dashboard without needing to open HubSpot separately. - Go to the Login Page: Open your browser and navigate to app.cloudfiles.io. You’ll be redirected to the CloudFiles sign-in page, where you can log in using email, Google, or Outlook. Choose the method that works best for you. - Complete the Sign-In Process: Once you choose your sign-in option, follow the prompts on screen. - Select Your Environment: After logging in, you’ll be asked to select the environment where you want to use CloudFiles. Depending on your setup, you might see options such as Salesforce and HubSpot. Select your HubSpot account to continue. - Access the Dashboard: Once you’ve chosen your environment, you will be redirected to the CloudFiles dashboard. - If you sign in with Google or Outlook, you’ll be redirected to the account chooser page. Select the account you want to use and confirm access. For example, in Google sign-in, you’ll see a confirmation screen stating “You’re signing back into CloudFiles”, after which you can click Continue. - If you sign in with your email, enter your email address and sign in with OTP/password, then proceed as instructed. ![](https://media.help.cloudfiles.io/faq-go-to-dashboard-hs/01.gif) ## Option 2 - Access from HubSpot Sidebar Widget HubSpot users can easily open the CloudFiles dashboard directly from their CRM environment. Follow the simple steps below. The steps have also been shown in the GIF image below - - Go to your HubSpot account, log in with your admin email. - Click on any of the contact/company/deal/ticket records - Locate the CloudFiles widget on the right side. - Click on the CloudFiles link at the bottom of the widget. - Click on the "Go To CloudFiles" button in the dialogue. This will open up the app dashboard. ![](https://media.help.cloudfiles.io/faq-go-to-dashboard-hs/02.gif) Need help? Book time with our team of experts. --- # How to replace files directly from HubSpot https://help.cloudfiles.io/hubspot/how-to-replace-files-directly-from-hubspot # How to replace files directly from HubSpot Learn how to use the CloudFiles Replace Files feature in HubSpot to make last-minute changes or updates to shared content. > Kind: FAQ · Updated: Jun 4, 2026 ## Introduction Let's understand what the CloudFiles Replace Files feature does in HubSpot and how to use it? CloudFiles is an integration first webapp to seamlessly share files using secure links on emails, messages or other digital media with clients, potential leads or to host content. The CloudFiles Integration with HubSpot allows you to use all the features of CloudFiles without ever leaving your HubSpot account. ## What Does CloudFiles Replace Files Feature Do? Many a times, there are last minute changes or new updates to be incorporated into your content, However the content links have already been shared with a number of recipients. In such cases it is recommended to use the CloudFiles Replace File feature to replace your files while retaining the functionality of the shared CloudFiles links. This feature does not affect your HubSpot Workflows and just updates the content. ## Replace feature inside HubSpot The replace feature works only on files that have been added to any contact. It does not work with a folder or dataroom. So, first ensure that the file has been added to any contact. - Navigate to the CloudFiles widget, and find the file you wish to replace. - Click on actions and then choose replace. - Now Choose the new file to be uploaded. It can be chosen from the files existing in your CloudFiles content library or you could Choose a file from your local computer. ![](https://media.help.cloudfiles.io/faq-replace-files-hs/01.gif) Change the security settings of the Link if required and Voila your file has now been replaced. ## Upcoming Feature Replacing files can be tricky at times as you loose track of the version history of the file. The Version Control feature is Coming Soon. Sign up at CloudFiles to get notified when this feature become live. Need help? Book time with our team of experts. --- # Supported Objects in CloudFiles & HubSpot Integration https://help.cloudfiles.io/hubspot/supported-objects-in-cloudfiles-and-hubspot-integration # Supported Objects in CloudFiles & HubSpot Integration Explains which HubSpot objects (Contacts, Companies, Deals, Tickets, Custom Objects) CloudFiles supports, what's not supported, and why the integration is limited to these objects based on HubSpot's Timeline and CRM Cards APIs. > Kind: FAQ · Updated: Jun 4, 2026 With the CloudFiles-HubSpot integration, you can upload, manage, share, and track files directly from HubSpot records, making it easy to manage documents within your CRM. Since CloudFiles is tied to HubSpot records, it’s important to know which objects are supported. At present, CloudFiles works with HubSpot’s standard objects (Contacts, Companies, Deals, Leads, and Tickets) as well as custom objects. ## Supported HubSpot Objects At the moment, CloudFiles works with the following HubSpot objects: - Contacts - Companies - Deals - Tickets - Custom Objects On these objects, you can: - Upload and attach files or folders using CloudFiles App Card - Open them directly in the connected cloud storage. - Browse, rename, download, and delete them. - Share them securely directly from HubSpot records. - Track file views and engagement in the HubSpot timeline. - Run workflow automations on these objects ## What’s Not Supported? CloudFiles does not currently support other HubSpot objects such as Leads, Quotes, Products etc... This means: - CloudFiles activity will not appear in the timeline of these unsupported objects. - Files cannot be uploaded or shared directly from these objects. ### Why CloudFiles Works Only with some Objects and Not all of them? The CloudFiles–HubSpot integration relies on HubSpot’s APIs, mainly the CRM Timeline API and CRM Cards API. The Timeline API allows integrations like CloudFiles to log activities (e.g., file views, uploads) into the timeline of HubSpot records, while CRM Cards let apps surface external data directly and displays app data in record sidebars. HubSpot’s own guide on How to set up and use Hubspot CRM Cards explains how external data can be configured and displayed inside HubSpot. At present, both of these APIs work primarily with HubSpot’s standard objects (Contacts, Companies, Deals, Tickets) and custom objects (with some special support). As HubSpot expands its API capabilities, support for additional object types may become available. To enable CloudFiles on your custom objects, talk to our support team through chat or email us at support@cloudfiles.io --- # Billing https://help.cloudfiles.io/hubspot/billing # Billing Learn about the compatibility of CloudFiles with various HubSpot tiers and understand the licensing process for CloudFiles integration with HubSpot. Gain insights on how to seamlessly integrate and optimize your cloud storage solution with HubSpot's CRM and workflow tools. > Kind: Guide · Updated: Jun 4, 2026 Below are Frequently Asked Questions about billing. - Can I purchase multiple types of licenses? Our system currently only supports purchasing licenses of the same type. - Which HubSpot tiers does CloudFiles work with? CloudFiles works with all HubSpot tiers. However, its possible that some of your HubSpot functionality is limited which would automatically imply that you can't use specific CloudFiles on those plans. --- # Can I purchase multiple types of licenses? https://help.cloudfiles.io/hubspot/can-i-purchase-multiple-types-of-licenses # Can I purchase multiple types of licenses? No, the system currently only supports purchasing licenses of the same type in a single purchase. > Kind: FAQ · Updated: Jun 4, 2026 No, our system currently only supports purchasing licenses of the same type. For example, you cannot buy a combination of 5 Pro licenses and 5 Business licenses in a single purchase. You would need to select and purchase one license type at a time. --- # Which HubSpot tiers does CloudFiles work with? https://help.cloudfiles.io/hubspot/which-hubspot-tiers-does-cloudfiles-work-with # Which HubSpot tiers does CloudFiles work with? Learn about the compatibility of CloudFiles with all HubSpot tiers and the potential limitations imposed by certain HubSpot functionality. > Kind: FAQ · Updated: Jun 4, 2026 CloudFiles works with all HubSpot tiers. All the CloudFiles licenses are compatible with the different tiers. However, its possible that some of your HubSpot functionality is limited which would automatically imply that you can't use specific CloudFiles on those plans. E.g., if your HubSpot tier does not allow you to run workflows, you won't be able to use CloudFiles workflow actions and triggers. Need help? Book time with our team of experts. --- # How to apply promotion codes? https://help.cloudfiles.io/hubspot/how-to-apply-promotion-codes # How to apply promotion codes? Learn where to enter a CloudFiles discount coupon on the Stripe checkout page, using the Add Promotion Code option in your billing settings. > Kind: FAQ · Updated: Aug 11, 2026 We provide a lot of discounts to our customers, depending on the requirements, number of users and engagement. If you would like to check for any current or upcoming discount campaigns, talk to us. In case you already have a discount coupon code and are wondering how to use it, check out the steps and the illustration below. Steps to apply promotion codes - - Go to your billing settings and continue to Stripe, or open the payment link that you have been given directly. - On the checkout page, locate the Add Promotion Code button. This is shown in the illustration below. - Add your promotion code and click Apply. ![Demonstration of opening billing settings, continuing to the Stripe checkout page, clicking Add promotion code, and typing a code into the field beside the Apply button.](https://media.help.cloudfiles.io/faq-promotion-codes-hs/01.gif) Need help? Book time with our team of experts. --- # Troubleshooting https://help.cloudfiles.io/hubspot/troubleshooting # Troubleshooting Looking for troubleshooting solutions for HubSpot issues? This document covers three common problems. Learn how to fix a workflow not triggering despite multiple views, disconnect and reconnect CloudFiles to your HubSpot account, and resolve the CloudFiles "License is required" error. > Kind: Guide · Updated: Jun 4, 2026 Below are Frequently Asked Questions about troubleshooting. - Attachments not visible in the CloudFiles widget despite having an active licenseThis article provides steps to troubleshoot the issue of attachments not being visible in the CloudFiles widget, despite having an active license. - Common Errors in HubSpot - This article covers the common errors you might encounter in HubSpot, along with their possible reasons and troubleshooting steps. - Error: “License is required” when clicking Add in the CloudFiles dialogue box - In this article, we have outlined the steps to troubleshoot "A license is required" error that appears when clicking the 'Add' button in the CloudFiles dialog box. - Error "Something went wrong" when clicking the Add button in the CloudFiles dialog box – In this article, we have outlined the steps to troubleshoot "Something went wrong" error that appears when clicking the 'Add' button in the CloudFiles dialog box. - Error: “Woops, we stumbled upon an error” when clicking Add in the CloudFiles dialogue box – In this article, you'll learn how to fix the CloudFiles HubSpot widget error by checking storage libraries, verifying integration, reinstalling the app, and reviewing console errors. - Error: “You don't have access to CloudFiles actions in Workflows on your current plan” This article explains how to troubleshoot the error ‘You don't have access to CloudFiles actions in Workflows on your current plan,’ including why it occurs and the steps to resolve it. - HubSpot workflow not triggering even after multiple views - There can be multiple reasons why your workflow is unable to trigger which we have discussed in this section. - How to debug HubSpot Workflows? This article provides steps to help you identify and address any workflow issues in HubSpot. - How to disconnect & reconnect CloudFiles to HubSpot Account - In this section, we have explained the process to disconnect and re-connect CloudFiles to HubSpot Account. - I cannot see SharePoint sites in HubSpot content library dialog - If you're unable to see any SharePoint sites in the Content Library dialog of HubSpot, there might a few SharePoint configuration reasons to it which is explained in this section. - I cannot see the CloudFiles widget in HubSpot - In this section, we have explained the troubleshooting steps for missing CloudFiles widget in HubSpot. - Why does it say 'Connect Google Drive' after connecting SharePoint? - In this article, you will see how to fix “Connect your Google Drive” in the CloudFiles Connected Folder widget, even though you’ve connected a SharePoint folder to your HubSpot record. --- # Attachments not visible in the CloudFiles widget despite having an active license https://help.cloudfiles.io/hubspot/attachments-not-visible-in-the-cloudfiles-widget-despite-having-an-active-license # Attachments not visible in the CloudFiles widget despite having an active license If you cannot see the file or folder attachments linked to the CloudFiles widget despite having an active license, try the following steps. > Kind: Troubleshooting · Updated: Jul 31, 2026 If you cannot see the file or folder attachments linked to the CloudFiles App Card or widget despite having an active license, try the following steps. ![HubSpot record Overview tab showing the CloudFiles App Card with no folder or file attached yet, and the CloudFiles panel in the right sidebar](https://media.help.cloudfiles.io/faq-ts-attachments-hs/01.png) ## Refresh Your Cloud Storage Connection - Go to the CloudFiles For HubSpot App. - Click on the Libraries tab from the left-hand side. - From the drop-down, select the storage library you are using. - Log out and log back in. - Refresh your HubSpot record and now you should be able to see the attachments. Follow the steps shown in the GIF below for a better understanding. ![Refreshing the cloud storage connection: opening Libraries in the CloudFiles for HubSpot app, selecting the storage library, and logging out and back in](https://media.help.cloudfiles.io/faq-ts-attachments-hs/02.gif) ## Reconnect your HubSpot and Cloud Storage Integration If the issue persists, follow these steps: - Open the CloudFiles for HubSpot app. - Go to the Document Management tab, then click Integrations in the left sidebar. - In the Integration User section, disconnect and reconnect your cloud storage platform. - Now, click Settings (top right corner), then select Account. - Under HubSpot Integration, reconnect your HubSpot account. Follow the steps shown in the GIF below for a better understanding. ![Reconnecting HubSpot and the cloud storage integration in the CloudFiles for HubSpot app: the Integrations tab, Integration User section, and the Account page's HubSpot Integration reconnect action](https://media.help.cloudfiles.io/faq-ts-attachments-hs/03.gif) If the issue still persists, please email us at support@cloudfiles.io. --- # Common Errors in HubSpot https://help.cloudfiles.io/hubspot/common-errors-in-hubspot # Common Errors in HubSpot This article covers the common errors you might encounter in HubSpot, along with their possible reasons and troubleshooting steps. > Kind: Troubleshooting · Updated: Jun 4, 2026 This article covers the common errors you might encounter in HubSpot, along with their possible reasons and troubleshooting steps. These are simple troubleshooting steps; if you encounter difficulties or the problem persists, feel free to contact us for further assistance. The article is divided into two sections: Workflow Errors and File Viewer Errors. You can check out specific errors by navigating from the Table of Contents. ## Common Workflow Errors This section covers various workflow-related errors that you might encounter. ### 1 - "Library not connected" ![](https://media.help.cloudfiles.io/faq-ts-common-errors-hs/01.png) This is the most frequently encountered error and usually occurs when your cloud drive library isn't connected to CloudFiles. To resolve this issue, start by opening the CloudFiles app in HubSpot. Next, connect an automation user. These steps have been exmplained in details below - Access the CloudFiles App in HubSpot Log in to your HubSpot account using your admin email. Navigate to any contact, company, or deal record. Find the CloudFiles widget on the right side. At the bottom of the widget, click the CloudFiles link, then select "Go To CloudFiles" in the dialog box to open the app dashboard. Check out How to go to the CloudFiles App Dashboard? for more detailed steps. Refer to the GIF below to have a visual understanding of these steps - ![](https://media.help.cloudfiles.io/faq-ts-common-errors-hs/02.gif) Connect an Automation User To link your automation user to cloud drives like Google Drive or SharePoint, log into the CloudFiles for HubSpot App. Go to Integrations from the left-hand side, choose your desired cloud library, and click 'Connect'. Complete the authentication process, and the library will show as 'Connected'. Check out What is an 'Automation User' and how does it work? for more detailed steps. Refer to the GIF below to have a visual understanding of these steps - ![](https://media.help.cloudfiles.io/faq-ts-common-errors-hs/03-b7aebf5e.gif) If you continue to encounter difficulties or if the problem persists, please feel free to contact us for further assistance. ### 2 - "Destination Not Found" ![](https://media.help.cloudfiles.io/faq-ts-common-errors-hs/04.png) This error often occurs due to incorrect folder names/paths, formatting issues, or permission problems. To resolve these issues, please refer to the respective solutions below - | | Reason | Resolution | |---|---|---| | Incorrect Folder Name or Path | The folder name and the path given might be wrong. | Ensure the folder name is correct. Verify that the entire path is correct. Manually navigate to the location to ensure it exists, and accurately copy the path from the metadata | | Formatting Issues | There could be a problem with formatting the path or the folder name. For instance, if there's an unnecessary slash or space in the path or folder name. | Make sure there are no extra slashes (/) or leading and trailing spaces in the path or the folder or record name. | | Permission Issues | The automation user doesn’t have direct access to the folder. | Ensure the automation user has the necessary permissions to access the folder. | | Automation User Issues | At times, the automation user connection in the CloudFiles Dashboard may become stale. | Reconnect your automation user for Cloud Drives. See this article for a detailed step-by-step walkthrough. What is an 'Automation User' and how does it work? | > **Important Note on Integration Users** — In some cases, the “Destination Not Found” error may occur even when the folder or library appears visible to the user in the CloudFiles content library. This typically happens when the integration user is different from the user currently browsing the library.For example, if the integration is set up with ramona@gmail.com but tom@gmail.com connects a document library during setup, Tom may be able to see all sites and folders in the interface. However, when CloudFiles automation is triggered, it will execute under Ramona’s credentials, not Tom’s. If Tom does not have access to the destination, the automation will fail and throw the “Destination Not Found” error, even though everything appears connected.✅ To avoid this: Always ensure that the user who connects the storage (via CloudFiles) and the user executing automations are the same, or that the integration user has explicit access to the required folders or libraries. If you continue to encounter difficulties or if the problem persists, please feel free to contact us for further assistance. ### 3 - "Resource Not Found" ![](https://media.help.cloudfiles.io/faq-ts-common-errors-hs/05.png) This error occurs with any CloudFiles flow action that involves a path. Here are the common reasons and their respective solutions - | | Reason | Resolution | |---|---|---| | Incorrect Path or Drive ID | The path or Drive ID provided is incorrect. | Navigate to the specified path manually in your cloud storage to confirm it’s correct. Copy it correctly from the metadata. | | Deleted Resource | The folder or file you are trying to access might have been deleted. | Make sure the folder or file you’re trying to access still exists and hasn't been moved or deleted. Update the flow if the resource has changed location or needs to be replaced with a new one. | | Permission Issues | The integration user doesn’t have access to the resource | Log into your cloud storage and check the permissions for the folder or file. Grant the necessary permissions to the integration user. | > **Important Note on Integration Users** — In some cases, the “Resource Not Found” error may occur even when the folder or library appears visible to the user in the CloudFiles Content library. This typically happens when the integration user is different from the user currently browsing the library.For example, if the integration is set up with ramona@gmail.com but tom@gmail.com connects a document library during setup, Tom may be able to see all sites and folders in the interface. However, when automation is triggered, it will execute under Ramona’s credentials, not Tom’s. If Tom does not have access to the resource, the automation will fail and throw the “Resource Not Found” error, even though everything appears connected. ✅ To avoid this: Always ensure that the user who connects the storage (via CloudFiles) and the user executing automations are the same, or that the integration user has explicit access to the required folders or libraries. If you continue to encounter difficulties or if the problem persists, please feel free to contact us for further assistance. ### 4 - "Invalid Input" This error often occurs with the Create Attachment Action flow action. It mostly occurs due to - - Library Not Connected: The cloud drive library isn't connected. - Incorrect Root Folder ID or Path: The root folder ID or the path given is incorrect. - Wrong Folder Name or Formatting: The folder name is misspelled or formatted incorrectly. Make sure your library is connected and accurately enter the folder name, root folder ID, and path in the flow action settings to avoid errors. If you continue to encounter difficulties or if the problem persists, please feel free to contact us for further assistance. ### 5 - Unauthorised Error This type of error occurs when your CloudFiles plan expires. You can upgrade your plan by contacting us. ### 6 - Internal Server Error ![](https://media.help.cloudfiles.io/faq-ts-common-errors-hs/06.png) For internal server errors, please contact us. ## Common File Viewer Errors This section covers various File viewer-related errors that you might encounter. ### 1 - “Sorry, we can't find the file you are looking for” This error occurs immediately after creating a new link for a document because the system is fetching and converting the file from external storage to display in the viewer. You may need to wait a few seconds for the slides to appear. This delay only happens the first time you create the link; it will work consistently afterward. ## Common Widget Errors This section covers various widget-related errors that you might encounter - ### 1 - "Application error: a client-side exception has occurred..." For this application error, please contact us. --- # Error: “License is required” when clicking Add in the CloudFiles dialogue box https://help.cloudfiles.io/hubspot/error-license-is-required-when-clicking-add-in-the-cloudfiles-dialogue-box # Error: “License is required” when clicking Add in the CloudFiles dialogue box This error indicates the current user account does not have an active CloudFiles license assigned, and must be resolved by assigning a license from within the CloudFiles WebApp. > Kind: Troubleshooting · Updated: Jun 4, 2026 ## Issue Overview: In some cases, when working with the CloudFiles widget inside a HubSpot record, you may encounter the following error message when attempting to use the “Add” button or the “Actions” dropdown menu: “A license is required. Please contact your account admin to assign a CloudFiles license to you.” ![](https://media.help.cloudfiles.io/faq-ts-license-required-hs/01.png) This error indicates that the current user account does not have an active CloudFiles license assigned to their account. ## How to resolve this? To resolve this error, the user must be assigned a valid CloudFiles license from within the CloudFiles WebApp. Please follow the steps below: ### 1. Log in to the CloudFiles WebApp A user who already has access to the CloudFiles account and has Admin permissions needs to log in to the CloudFiles WebApp. Only Admins can manage licenses and user roles. ### 2. Navigate to the ‘Team’ Sidebar Click on the Settings (gear icon) from the top-right corner, then go to ‘Team’ from the left-hand sidebar. ### 3. Check if the User Already Exists - If the user’s email is listed under "Users": - Click on the ellipsis (…) next to their name and select ‘Assign License’. - You can assign either a User or Admin role, depending on the level of access they require. - If the user’s email is not listed: - Click on the ‘Invite’ button, enter their email address, and choose the desired role (User or Admin) under the invite screen. - Once the user accepts the invite and logs in, the license should be automatically assigned based on the role selected. ### 4. Return to HubSpot and Refresh This should remove the license-related error and allow full access to CloudFiles functionality inside HubSpot. ![](https://media.help.cloudfiles.io/faq-ts-license-required-hs/02.gif) --- # Error "Something went wrong" when clicking the Add button in the CloudFiles dialog box https://help.cloudfiles.io/hubspot/error-something-went-wrong-when-clicking-the-add-button-in-the-cloudfiles-dialog-box # Error "Something went wrong" when clicking the Add button in the CloudFiles dialog box Troubleshooting steps for the "Something went wrong" error when clicking Add in the CloudFiles widget on a HubSpot record. > Kind: Troubleshooting · Updated: Jun 4, 2026 ## Issue: If you see a "Something went wrong" message after clicking the Add button in the CloudFiles widget on any HubSpot record, try the following steps. ![](https://media.help.cloudfiles.io/faq-ts-something-wrong-hs/01.png) ### Reconnect Your HubSpot and Cloud Storage Integration - Go to the CloudFiles Webapp. - Click on Settings (top right corner). - Select the Integrations tab on the left-hand side. - Under CRM, disconnect and reconnect HubSpot. - Under Cloud Library, select your storage platform. - Disconnect and reconnect your cloud storage platform. Follow the steps shown in the GIF below for a better understanding. ![](https://media.help.cloudfiles.io/faq-ts-something-wrong-hs/02.gif) ### Refresh Cloud Library Visibility If the issue persists, follow these steps: - In the error dialogue box, click the dropdown in the top-right corner that says "CloudFiles" and go to Library Settings. - In Settings, find your storage platform and click the eye icon next to it. - Select Hide. - Close the window and refresh the page. - Repeat Step 1, then similar to Step 2, click the eye icon again to unhide the storage library. Follow the steps shown in the GIF below for a better understanding. ![](https://media.help.cloudfiles.io/faq-ts-something-wrong-hs/03.gif) This should resolve the issue. If you still face problems, please email us at support@cloudfiles.io. --- # Error: “Woops, we stumbled upon an error” when clicking Add in the CloudFiles dialogue box https://help.cloudfiles.io/hubspot/error-woops-we-stumbled-upon-an-error-when-clicking-add-in-the-cloudfiles-dialogue-box # Error: “Woops, we stumbled upon an error” when clicking Add in the CloudFiles dialogue box Steps to resolve the "Whoops, we stumbled upon an error" message when clicking Add or using the Actions dropdown in the CloudFiles widget inside a HubSpot record. > Kind: Troubleshooting · Updated: Jun 4, 2026 ## Issue Overview: In some cases, when working with the CloudFiles widget inside a HubSpot record, you may encounter the following error message when attempting to use the “Add” button or the “Actions” dropdown menu: > “Whoops! We stumbled upon an error. Brace yourself until we sort out the error. You can also refresh the page or try again later.” ![](https://media.help.cloudfiles.io/faq-ts-woops-hs/01.png) ## How to resolve this? Please follow the steps below in order, testing after each step to see if the issue is resolved. If the problem is fixed at any step, you do not need to continue to the remaining steps. ### 1. Check and Enable Libraries in CloudFiles - Log in to the CloudFiles WebApp. To navigate to the CloudFiles web app, follow the steps mentioned inHow to go to the CloudFiles App Dashboard? - Go to Dashboard and then navigate to the Libraries tab. - Ensure your storage library is enabled by clicking the gear button at the top left corner. - Connect your desired storage platform (e.g., SharePoint, Google Drive, Dropbox). ![](https://media.help.cloudfiles.io/faq-ts-woops-hs/02.gif) If this step does not fix the issue, please try the alternative steps listed below. ### 2. Verify HubSpot Integration - In the CloudFiles WebApp, navigate to Settings from the top right corner, then go to the Integrations sidebar on the left. - Check whether HubSpot is connected. - If connected, disconnect it and then reconnect it. ![](https://media.help.cloudfiles.io/faq-ts-woops-hs/03.png) ![](https://media.help.cloudfiles.io/faq-ts-woops-hs/04.png) If this step does not fix the issue, please try the alternative steps listed below. ### 3. Reinstall the CloudFiles App in HubSpot - Uninstall the CloudFiles app from your HubSpot account via the HubSpot Marketplace. - Reinstall it from the HubSpot App Marketplace and reconnect your account. ![](https://media.help.cloudfiles.io/faq-ts-woops-hs/05.gif) If this step does not fix the issue, please try the alternative steps listed below. ### 4. Check Browser Console for Errors - In the HubSpot record, right-click anywhere and choose Inspect. - Go to the Console tab. - Look for any "🚫" error messages. - Try clicking the “Add” button in the CloudFiles widget and note any error messages that appear. Capture a screenshot of the error messages and send it to our support team at support@cloudfiles.io or via chat. Providing these details will help us quickly identify the cause and resolve the issue. --- # Error: “You don't have access to CloudFiles actions in Workflows on your current plan” https://help.cloudfiles.io/hubspot/error-you-dont-have-access-to-cloudfiles-actions-in-workflows-on-your-current-plan # Error: “You don't have access to CloudFiles actions in Workflows on your current plan” Explains why HubSpot shows a 403 "You don't have access to CloudFiles actions in Workflows on your current plan" error and how to resolve it by checking and upgrading your CloudFiles plan. > Kind: Troubleshooting · Updated: Jun 4, 2026 ## Issue Overview: If you see the following error while using CloudFiles actions inside HubSpot Workflows: {"message":"You don't have access to CloudFiles actions in Workflows on your current plan.","error":"Forbidden","statusCode":403} this article explains why it happens and how to resolve it. ![](https://media.help.cloudfiles.io/faq-ts-no-access-hs/01.png) ## Why this error occurs? CloudFiles Workflow actions (such as creating folders/attachments, copy/move/update resocures, etc. through Workflows) require a paid CloudFiles plan that includes automation features. If your account: - is on a Free plan, or - is on a plan that does not include Workflow automation, HubSpot will block CloudFiles Workflow actions and show this 403 "Forbidden" error. This can happen even if the actions worked previously, because your plan may not include the required permissions. This error appears only when using CloudFiles Workflow actions inside HubSpot. These include actions that upload files to CloudFiles or SharePoint, delete files, create CloudFiles links, or attach CloudFiles files to HubSpot records. Since these actions rely on automation access, they require a CloudFiles plan that supports workflow automation. If the account is on a plan without automation support, HubSpot will block these actions and show the 403 error. ## How to fix the issue? ### 1. Check Your Current CloudFiles Plan You can verify your subscription from: CloudFiles for Hubspot App → Settings → Subscriptions. If the plan shows Free or Trail or does not mention the plan that supports automations, that's the reason for the error. ### 2. Upgrade to a Supported Plan To enable Workflow actions, upgrade your subscription from: CloudFiles App → Settings → Billing → Manage Billing in Stripe or contact CloudFiles Support to confirm the right plan for your needs. ### 3. Retry the Workflow Step After upgrading: - Refresh HubSpot - Open your Workflow again - Trigger the action The error should be resolved. --- # HubSpot workflow not triggering even after multiple views https://help.cloudfiles.io/hubspot/hubspot-workflow-not-triggering-even-after-multiple-views # HubSpot workflow not triggering even after multiple views Learn troubleshooting tips for when a workflow fails to trigger in HubSpot. > Kind: Troubleshooting · Updated: Jun 4, 2026 There can be multiple reasons why your workflow is unable to trigger. Some are related to HubSpot restrictions and some to the working of CloudFiles. ## File not in Contact context HubSpot only allows external apps to trigger workflows in the context of contacts. Make sure the file you are viewing and trying to trigger to workflow on, is uploaded in a contact record in HubSpot. ## View the file in Incognito or in a different browser The CloudFiles viewer is smart. If you open the file without incognito mode(using "preview" button), the viewer will detect that the uploader of the file (you) is trying to access and won't record the session. ## Workflows trigger after 1-5 minutes Just so HubSpot APIs are not overwhelmed, CloudFiles triggers workflows after a certain amount of time of file getting viewed. This may vary from 1 to 5 minutes. As soon as the event is triggered, a timeline post will be created in the contact. Your workflow should trigger within 5-10 seconds of the timeline post. Check out our Doc Sharing Quickstart to understand how you can enable & use the CloudFiles timeline post as a sanity check for your workflow. ## Pre-met conditions Sometimes you may upload a file and use it for a few days, thus gathering a certain number of views on those files. If you decide to create a workflow on a certain condition, make sure that condition is not already met by some contacts otherwise HubSpot will not trigger workflows for those contacts. If you still want to trigger workflows on those contacts, you must enroll them while creating the workflow. This way, as soon as the workflow is created, it will be automatically triggered for those contacts and your actions (e.g. creating a task) will occur. If you still face issues triggering your workflows, please create a ticket or send us a mail detailing the workflow you are creating. We will get back to you as soon as possible Need help? Book time with our team of experts. --- # How to debug HubSpot Workflows? https://help.cloudfiles.io/hubspot/how-to-debug-hubspot-workflows # How to debug HubSpot Workflows? This article provides three steps to help you identify and address any workflow issues in HubSpot, with our assistance. > Kind: Troubleshooting · Updated: Jun 4, 2026 When encountering problems with workflows in HubSpot, debugging involves identifying and resolving the underlying issues. This article provides three steps to help you identify and address any workflow issues in HubSpot, with our assistance. ## Navigate to the Workflows Section Navigate to "Workflows" and select the specific workflow and click "Edit actions". ![](https://media.help.cloudfiles.io/faq-ts-debug-workflows-hs/01.gif) ## Check for Errors in the Workflow From the top right corner, access Enroll > View Enrollments to see affected records. Within the list, hover on a record that is showing an issue and click on the "Enrollment details" button to view the execution history of actions. ![](https://media.help.cloudfiles.io/faq-ts-debug-workflows-hs/02.gif) ## Review and Report Errors Errors will be marked with red dots and labelled as "Error". Scroll down to the first action that is showing an error and expand the logs. Click on the error, copy the Error log/Server response, and send it to us for debugging assistance. > **Note** — Please note that the error logs follow a reverse chronological order, with the error logs of the earliest workflow actions appearing at the bottom and the error logs of the latest workflow actions appearing at the top in the Workflow history section. For debugging, always send the earliest failing error logs to us. ![](https://media.help.cloudfiles.io/faq-ts-debug-workflows-hs/03.gif) Send us these logs. With these, we will be quickly able to figure out the issue. --- # How to disconnect & reconnect CloudFiles to HubSpot Account https://help.cloudfiles.io/hubspot/how-to-disconnect-and-reconnect-cloudfiles-to-hubspot-account # How to disconnect & reconnect CloudFiles to HubSpot Account Learn how to re-connect CloudFiles and HubSpot integration with this helpful document. > Kind: Troubleshooting · Updated: Jun 4, 2026 Re-connection of CloudFiles - HubSpot Integration may be needed in various cases. This can include situations when installation related issues pop up, or when new features which require new HubSpot scopes are needed. The disconnection and re-connection process is extremely easy. Follow the steps below. You can check the GIF at the bottom of this article for screenshots. - From the top-right corner of the CloudFiles dashboard, click on Settings. - In the left-hand sidebar, select Account. - Under Account Information, locate the HubSpot Integration section. - Click on the Reconnect button. - Complete the authentication process. - Select the appropriate HubSpot account and grant the required permissions when prompted. If you are having trouble finding the CloudFiles App Dashboard, you can refer to our FAQ article on How to go to the CloudFiles App Dashboard?. The image shows the integration section - ![](https://media.help.cloudfiles.io/faq-ts-disconnect-reconnect-hs/01.png) Need help? Book time with our team of experts. --- # I cannot see SharePoint sites in HubSpot content library dialog https://help.cloudfiles.io/hubspot/i-cannot-see-sharepoint-sites-in-hubspot-content-library-dialog # I cannot see SharePoint sites in HubSpot content library dialog If you're unable to see any SharePoint sites in the Content Library, this article lists 4 ways to solve this issue. > Kind: Troubleshooting · Updated: Jun 4, 2026 If you're unable to see any SharePoint sites in the Content Library, as shown in the image below, there might be a few reasons for this issue. This article lists down 4 ways by which you can solve this issue. ![](https://media.help.cloudfiles.io/faq-ts-sharepoint-sites-hs/01.jpg) Let us look into these options - ## Follow the SharePoint Site Go to SharePoint and follow the site. Come back to the CloudFiles app and use the followed sites from the dropdown. Followed sites usually work better than the All Sites APIs provided by SharePoint. ![](https://media.help.cloudfiles.io/faq-ts-sharepoint-sites-hs/02.gif) ## Ensure correct SharePoint Login Make sure you are logged in to CloudFiles with the correct SharePoint login. Consider opening HubSpot in incognito mode, then navigate to CloudFiles > Content Library > Log out from SharePoint and log back in. This ensures that you are logged in with the correct SharePoint user. Additionally, you can try opening SharePoint in a new tab and ensure that you are logged in with the correct SharePoint user. Sometimes, an O365 user gets logged in instead of the correct SharePoint user, which might create issues. ## Add Share Permissions for Desired User Sometimes, creating a folder from SharePoint and explicitly adding share permissions for the desired user will solve the issue. Make sure you have at least 1 folder inside of the site and try adding share permissions explicitly for your user in to it. ![](https://media.help.cloudfiles.io/faq-ts-sharepoint-sites-hs/03.gif) ## Ensure Access to Folders / Sites Make sure you have access to the folders / sites in SharePoint. Open the SharePoint App and make sure you are seeing SharePoint folders & site there. In case the problem persists, please chat with us or write to us. We will get back to you as soon as possible. --- # I cannot see the CloudFiles widget in HubSpot https://help.cloudfiles.io/hubspot/i-cannot-see-the-cloudfiles-widget-in-hubspot # I cannot see the CloudFiles widget in HubSpot Learn how to locate and make the CloudFiles widget visible on HubSpot records like deals, contacts, companies, and tickets. > Kind: Troubleshooting · Updated: Jun 4, 2026 If you have recently installed CloudFiles from the CloudFiles listing on HubSpot marketplace, you will see the CloudFiles widget on the right side of your HubSpot records - deal, contact, company or tickets. Before you proceed further, scroll the entire right sidebar to make sure the CloudFiles widget was not missed out. ![](https://media.help.cloudfiles.io/faq-ts-cannot-see-widget-hs/01.png) If it is not visible, check out the upcoming steps - - Go to settings inside your HubSpot dashboard. - Click on the Objects button in Data Management in the left pane. - Select "Contact" and choose "Record Customization" tab. - Next choose "Customize the right sidebar" and then select "edit default view". - Then select Add Card and choose "CloudFiles" from the dropdown and then save it. ![](https://media.help.cloudfiles.io/faq-ts-cannot-see-widget-hs/02.gif) The same steps are to be repeated with "company", "deal" and "ticket" respectively, if you wish to find CloudFiles in those records. Contact your HubSpot Admin, if you are unable to see these settings for your authorization level. If the problem still persists. Need help? Book time with our team of experts. --- # Why does it say 'Connect Google Drive' after connecting SharePoint? https://help.cloudfiles.io/hubspot/why-does-it-say-connect-google-drive-after-connecting-sharepoint # Why does it say 'Connect Google Drive' after connecting SharePoint? Explains why the CloudFiles Connected Folder widget prompts to connect a storage (e.g. Google Drive) that appears already connected via another storage (e.g. SharePoint), and how to fix it by reconnecting, disassociating old folders, and logging out properly. > Kind: Troubleshooting · Updated: Jun 4, 2026 ## The Issue You're seeing “Connect your Google Drive” in the CloudFiles Connected Folder widget, even though you’ve connected a SharePoint folder to your HubSpot record. This can also occur with other storages. E.g. you might have connected a Google Drive Folder and yet might be seeing the "Connect your SharePoint" prompt in the widget. > A more generic form of this error is -I am seeing the "Connect your Storage 1" message on the record when I have already logged in to Storage 2 and associated a folder to the record. ![](https://media.help.cloudfiles.io/faq-ts-connect-gdrive-hs/01.png) ## Why This Happens? This happens because even if you logout from a previously connected storage, CloudFiles still remembers your previous file / folder associations with the records, unless you explicitly disassociate them. Here is a possible sequence of events you might have followed that can cause the issue to surface : - You connect Google Drive folder to a record: At some point before, you might have logged in to Google Drive through the CloudFiles interface and associated a Google Drive file or folder to this record. - You connect a SharePoint folder to the same record: After some time, you decide to log in to SharePoint as well (since CloudFiles support multiple storage), and connect a SharePoint folder to the record. Now, you have two folders connected to the record: one from Google Drive and another from SharePoint. - You log out of Google Drive: After more experimentation, you decide that the company users are going to use SharePoint, and so you decide to log out of Google Drive from the CloudFiles interface. At this point, while you still have 2 folders from different storages connected to the record, you are logged in to only one of those storages. - CloudFiles shows this error: Note that in the above step, you only logged out of Google Drive. You never disconnected the Google Drive folder. The app does not automatically disconnect your old attachments if you log out. It still remembers the connection, but since your user does not have access to Google Drive anymore, it asks you to connect it. That's why the app shows the "Connect your Google Drive" message. This is not a bug. It’s just how the app handles multi-cloud connections. Check the steps below on how to fix this properly. ## How to Fix It? To remove the “Connect your Google Drive” message, you need re-login to google drive, and explicitly disassociate the folders you had connected previously. Follow the steps below : - Reconnect your Google Drive account: Go to the CloudFiles web app, navigate to the Libraries section and from the left-hand side, reconnect your Google Drive. - Disconnect the previously connected Google Drive Folder: Go back to the HubSpot record where you were seeing this error and remove all previously added Google Drive files or folders. - Log out from Google Drive: Again, in the Libraries tab in CloudFiles webapp, disconnect (log out) from Google Drive. After following these steps, you should only see the correct folder from the right storage on the record. If you’re still seeing the message after doing this, contact our support team (support@cloudfiles.io) and we’ll help you out. --- # How to collect console logs using browser inspector https://help.cloudfiles.io/hubspot/how-to-collect-console-logs-using-browser-inspector # How to collect console logs using browser inspector Learn what browser console logs are and how to capture them from your browser's developer tools, so our support team can diagnose an issue faster. > Kind: Troubleshooting · Updated: Aug 11, 2026 This article explains what console logs are, and how to open the Console in your web browser's developer tools to inspect and view logs, errors, and other relevant information. Console logs play an essential role in debugging and error handling. They help our developers identify issues and analyse unexpected errors. By providing details about the errors a user has run into, console logs lead to a much faster diagnosis and resolution. ## What Are Console Logs? Console logs are debugging logs that are captured by the web browser. They can contain warnings, errors and other information, and they are especially helpful for any development team trying to narrow down the source of an issue. You can collect them by following the simple steps below. ## How to Capture the Console Logs To capture the console logs, we will first access the developer tools, go to the console, reproduce the issue and get the relevant logs. The GIF below is a complete demonstration of how to collect the logs. If you need a detailed explanation, refer to the steps that follow. ![End-to-end demonstration of opening developer tools, switching to the Console tab, reloading the page and expanding a red error log.](https://media.help.cloudfiles.io/faq-ts-console-logs-hs/01.gif) ### Step 1 - Open Developer Tools In most web browsers (Chrome, Safari, Firefox, Edge), you can open developer tools by right-clicking on the page and selecting Inspect, or by pressing F12 (Ctrl + Shift + I on Windows, or Cmd + Option + I on Mac). ![Browser right-click menu open on an error page, with the Inspect option highlighted at the bottom of the menu.](https://media.help.cloudfiles.io/faq-ts-console-logs-hs/02.png) ### Step 2 - Access the Console Tab Click on the Console tab in the developer tools panel, as shown in the image below. The Console tab sits along the top of the developer tools. Optionally, you can also clear the existing logs, since we are going to reproduce the issue in the next step. ![Developer tools panel with the Console tab highlighted in the top tab bar.](https://media.help.cloudfiles.io/faq-ts-console-logs-hs/03.png) ### Step 3 - Reproduce the Issue Once you have navigated to the Console tab, it is always a good practice to reproduce the issue, which you can do by refreshing the page. Refresh the webpage by clicking the reload icon at the top left, or press F5 (Ctrl + R on Windows, or Command + R on Mac). > **Note** — Refreshing a webpage before collecting logs from the console helps regenerate the logs, and ensures that you capture the most current and relevant logs that have occurred since the last load. ![Browser reload icon at the top left of the window, used to reproduce the issue while the Console tab is open.](https://media.help.cloudfiles.io/faq-ts-console-logs-hs/04.png) ### Step 4 - Looking for the Right Logs Logs or messages displayed in red indicate errors. These are the logs we need you to collect. The logs are usually collapsed by default, so you need to expand them in order to collect the right details. Look for the right-pointing arrows shown in the image below, which expand the logs. ![Console showing several red 404 errors, with arrows pointing at the collapsed right-pointing expand triangles beside two of them.](https://media.help.cloudfiles.io/faq-ts-console-logs-hs/05.png) > **Note** — Make sure to expand all the right-pointing arrows in red to check for error log details.For example, in the image below there are 2 indicators, and the 2nd one is equally important, as the error message can be found in that section. ![Expanded red console error showing the response object with status 500 and a Server Error status text, with both expand arrows marked.](https://media.help.cloudfiles.io/faq-ts-console-logs-hs/06.png) ### Step 5 - Sending us the Logs Use our email support@cloudfiles.io or chat to send us the screenshots captured above. This will help our development team quickly narrow down the issue and resolve it. > **Note** — Make sure to expand the arrows as shown above, so that all the relevant details are shared in the screenshots that you send us. Need help? Book time with our team of experts. --- ## Related Resources --- # Release Process and Update Policy https://help.cloudfiles.io/salesforce/release-process-and-update-policy # Release Process and Update Policy Overview of CloudFiles' weekly release cadence, testing/stability process, and the Rolling vs Stable deployment tracks, including the auto-upgrade policy. > Kind: Release notes · Updated: Jul 4, 2026 ## Release Frequency and Types of Updates CloudFiles is built on a philosophy of rapid improvement. We release new versions of the app every week, ensuring that progress is steady and visible. This approach allows us to deliver value quickly, address customer feedback promptly, and keep our platform aligned with the evolving needs of Salesforce users. The changes in each release typically include: - New Features – additions that expand the capabilities of Document Management, Document Generation, and Document AI. - Enhancements – refinements to existing features for greater usability, flexibility, or efficiency. - Bug Fixes – resolutions to issues that improve stability and reliability. - Security Patches – updates that strengthen protection of data and compliance with evolving standards. - Performance Optimizations – improvements to make the apps faster and more efficient at scale. ## Testing and Stability At CloudFiles, speed of delivery never comes at the cost of quality. Every version goes through several layers of testing before it reaches our customers. We rely on a mix of automated checks, detailed integration tests to make sure CloudFiles works smoothly with Salesforce and connected systems, and hands-on testing that mirrors real-world usage. A special focus is placed on backward compatibility. We know our customers depend on CloudFiles as part of their day-to-day workflows, so updates are designed to work seamlessly with existing configurations. Our team makes sure that new versions respect your current setup, so features you already rely on continue to function just as expected. By the time an update is rolled out, it has been reviewed, tested, and verified to be stable in production. This process gives us the confidence that every release, while frequent, is reliable and ready for immediate use. ## Deployment and Upgrade Policy CloudFiles provides 2 deployment tracks - Rolling and Stable. By default, every CloudFiles customer is on the Rolling track and is upgraded automatically. While new versions of the app are built and released on a weekly basis, these changes are grouped together and deployed to Rolling-track organizations at regular monthly intervals. This approach provides the best of both worlds: you gain the benefits of rapid innovation and new functionality, but the updates are packaged into scheduled, thoroughly tested releases. These upgrades happen in the background and require no effort from administrators or end users. There is no downtime, no configuration to redo, and no risk of missing out on improvements. By the time an update reaches your organization, it has already been tested to work seamlessly with Salesforce and with your existing CloudFiles setup. Organizations that need a predictable testing window before changes reach production can move to the Stable track instead. On Stable, releases follow a quarterly cadence rather than a monthly one: each release goes to sandboxes first, then to production after a testing window, giving admins time to validate changes before they go live. ## Can I opt out of auto-upgrades? On the Rolling track, which is the default for every organization, opting out of upgrades isn't possible. CloudFiles enforces automatic upgrades so every organization on this track always runs on the most current and supported version of the platform. This policy is designed to protect and support customers in several key ways. First, it ensures that critical security patches are applied immediately and universally, keeping your data protected without requiring manual action. Second, it guarantees compatibility with Salesforce and other connected platforms, so your workflows continue running smoothly without interruptions caused by older or unsupported versions. Finally, having customers on a consistent, current version simplifies support and troubleshooting, which allows for faster response times and more reliable issue resolution. If your organization needs a predictable testing window before changes reach production, the Stable release track gives you that control. See Release Tracks article for more details. ## Recent Releases We continuously evolve CloudFiles with frequent updates and improvements. You can view details of the most recent versions, including new features, enhancements, and fixes, in our Release Notes article. --- # Release Tracks https://help.cloudfiles.io/salesforce/release-tracks # Release Tracks CloudFiles supports two release tracks for Salesforce orgs, Rolling and Stable, letting admins choose between immediate automatic upgrades or a quarterly cadence with a testing window. > Kind: Release notes · Updated: Jul 4, 2026 CloudFiles supports two release tracks for Salesforce orgs: Rolling and Stable. On the Rolling track, CloudFiles upgrades the org automatically as new versions ship, with no fixed schedule and no testing window. On the Stable track, the org receives CloudFiles releases on a quarterly cadence instead, with each release going to sandboxes first and then to production after a testing window. Rolling is the default track for every org. ## Key capabilities The release track applies to the customer account as a whole, not to an individual org. Production and any sandboxes refreshed from it move through the release lifecycle together. Every org on the Stable track receives every quarterly release. There's no option to skip individual releases while remaining on the track. Admins on the Stable track can still update to the latest version at any time if they want to try new functionality ahead of the next scheduled Stable release. Doing this doesn't remove the org from the Stable track. The org continues to receive notifications and upgrades for the next Stable release as normal. ## When to use the stable track Use the Stable track if your organization has its own change-control or QA process and needs lead time to test a CloudFiles release in a sandbox before it reaches production. Stay on the Rolling track if you'd rather receive improvements as soon as they ship. ### How the Stable timeline works Once CloudFiles designates a new release as a Stable release, it moves through the org on a fixed schedule: - Sandboxes connected to the org are upgraded automatically about one week after the version has been marked as stable. - Production upgrades automatically about six weeks after the sandbox upgrade, giving roughly seven weeks total to validate the version before it reaches production. If an org switches from Rolling to Stable partway through a quarter, it stays on its current version until the next Stable release is designated, then follows the same sandbox-then-production timeline from there. ### How to enroll Stable track isn't available to every org yet. If your org doesn't have it, email support@cloudfiles.io to request access. If your org already has Stable track enabled, you can enroll directly by going to the CloudFiles App -> Settings -> Releases tab, and clicking on the "Stable Track" As part of enrolling, you can add a list of email addresses to receive automated notifications when a new Stable version becomes available. ![](https://media.help.cloudfiles.io/rel-release-tracks-sf/01.png) --- # Partnerships https://help.cloudfiles.io/hubspot/partnerships # Partnerships This section provides everything partners need to know and successfully promote CloudFiles Affiliate Partner Program, manage referrals, understand commissions and access sales enablement resources. > Kind: Guide · Updated: Jul 8, 2026 ## Introduction This section provides everything partners need to know and successfully promote CloudFiles Affiliate Partner Program, manage referrals, understand commissions and access sales enablement resources. This section is organised into 4 categories: - Getting Started: Learn how to apply for the Affiliate Partner Program, access the Partner Portal, test referral links and understand how partner commissions work. - CloudFiles Partner Portal: Understand how to use the Partner Portal to manage campaigns, track referrals, monitor earnings and configure commission payouts. - Co-Marketing Resources: Access product positioning guides, customer use cases, sales talking points and ideal customer profiles to help promote CloudFiles effectively. - FAQs: Find answers to common questions related to referral attribution, payouts, tracking limitations and edge-case conversion scenarios. ## Contact Us If you have questions about the CloudFiles Affiliate Partner Program or want to explore how CloudFiles fits for use cases, feel free to reach out. Email us at partnerships@cloudfiles.io Or schedule a time to speak with our team: Book a call We’re happy to walk you through the program, positioning and how you can start earning effectively. --- # Getting Started https://help.cloudfiles.io/hubspot/getting-started # Getting Started The CloudFiles Affiliate Partner Program helps partners refer customers to CloudFiles and earn commissions on successful conversions. This section explains how to apply for the partner program, register on the portal after getting an invite, access the partner portal and start earning commissions through your referral link. > Kind: Guide · Updated: Jun 4, 2026 The CloudFiles Affiliate Partner Program helps partners refer customers to CloudFiles and earn commissions on successful conversions. This section explains how to apply for the partner program, register on the portal after getting an invite, access the partner portal and start earning commissions through your referral link. The section is divided into the following articles: - How to Apply: This article explains how to apply for the CloudFiles Affiliate Partner Program by filling out a form and providing some basic details. - Portal Registration: This article explains how to register on the portal after your application is approved and you receive an email invite for registration. - Testing Referral Link: This article explains how to test and verify click tracking and confirm that referrals are being attributed correctly. - Earning Commissions: This article explains how commissions work, where to share your referral link, and how to use it effectively to drive conversions and earnings --- # How to Apply https://help.cloudfiles.io/hubspot/how-to-apply # How to Apply Walks through applying to the CloudFiles HubSpot affiliate partner program: visiting the program page, submitting the application, and awaiting approval. > Kind: Guide · Updated: Jun 4, 2026 Becoming a CloudFiles affiliate partner is a simple, guided process designed for HubSpot professionals who want to start earning recurring revenue by recommending CloudFiles. You can apply by providing some very basic information about yourself. ## Step 1: Visit Page To get started, navigate to the CloudFiles Partner Program page-https://www.cloudfiles.io/hubspot/partner-program Here, you’ll find an overview of program including the commission structure (30% recurring for 12 months), how partner can recommend CloudFiles and start earning, who the program is designed for (HubSpot partners, consultants, agencies and creators) etc... Click on “Become an Affiliate” to begin the application. ![](https://media.help.cloudfiles.io/pt-how-to-apply-hs/01.png) ## Step 2: Application Form Once you click on apply, you will be redirected to the application form. You will be asked to provide basic details such as name, email address, organisation details etc... These are necessary for our verification purpose. The application is quick and designed to understand your background with HubSpot and how you plan to recommend CloudFiles. > By applying to CloudFiles Affiliate Program, you acknowledge that you have read, understood and agree to be bound by the Affiliate Program Agreement and related program policies.To view agreement visit- CloudFiles Affiliate Program Agreement > **Note** — Submitting the application does not guarantee entry into the program. It is an interest-based application for access. ## Step 3: Approval After submitting your application, CloudFiles team reviews the information provided and evaluates your profile based on your experience with HubSpot and fit for the program and initiates a short onboarding process. CloudFiles team usually respond to applications within 2–3 business days. ## What's Next ? If you have already received approval as well as an email invitation to create your portal account, you can continue to the next article for Portal Registration. --- # Portal Registration https://help.cloudfiles.io/hubspot/portal-registration # Portal Registration Explains how to accept the CloudFiles affiliate program invitation email, create a portal account, and access the affiliate portal dashboard. > Kind: Guide · Updated: Jun 4, 2026 Once your application is approved, you will receive an email invitation email to join the CloudFiles affiliate program. In this article we explain how to accept the invite, create a portal account and access the portal dashboard. ## Step 1: Accepting the invite Once your application is approved, you will receive an invitation email with Subject - 'CloudFiles invited you to be an affiliate' to join the CloudFiles affiliate program. Here is how the email looks like. Click on “Accept Invitation” to begin the account setup process. ![](https://media.help.cloudfiles.io/pt-portal-registration-hs/01.png) ## Step 2: Creating portal account Once you click on the “Accept Invitation” button, you will be redirected to the affiliate onboarding page where you can review CloudFiles Affiliate program details. To complete the setup, create your affiliate account by setting a password or Choose 'sign up with Google' ![](https://media.help.cloudfiles.io/pt-portal-registration-hs/02.png) ## Step 3: Accessing the dashboard Once your account is created, inside the partner portal, you will be able to access your unique affiliate referral link, track referrals, view commissions and payouts and stay updated on partner announcements. ![](https://media.help.cloudfiles.io/pt-portal-registration-hs/03.png) ## What's Next ? Now that you have the portal registration done and you can access your affiliate link, you are ready to test the link and then roll it out onto your webpages to start earning commissions. Testing of link is highly recommended before using it on production pages. Check the next article on Testing Referral Link. --- # Testing Referral Link https://help.cloudfiles.io/hubspot/testing-referral-link # Testing Referral Link Learn how to test your referral link by checking clicks and conversions before sharing it with customers. > Kind: Guide · Updated: Jun 4, 2026 Before sharing the referral link with customers, it’s important to test it to ensure tracking is working correctly. This helps confirm that: - The referral link is active - Clicks are being tracked - Conversions will be attributed to partner correctly ## Step 1: Copying Referral Link Once the Partner is onboarded, the unique referral link is available inside the partner portal in Campaigns section. Partner can copy this link directly from the dashboard. ![](https://media.help.cloudfiles.io/pt-testing-referral-link-hs/01.png) ## Step 2: Testing Clicks Copy the unique referral link from Campaigns section and Paste the referral link into a new browser tab (preferably in an incognito/private window). You should be redirected to the CloudFiles login page. This confirms that: - The referral link is active - The onboarding flow is working correctly Once the link is opened go back to the Partner Portal Dashboard. Check if the "Total clicks" is updated. ![](https://media.help.cloudfiles.io/pt-testing-referral-link-hs/02.png) ## Step 3: Testing Conversions Conversions are actual subscriptions that we have received in CloudFiles. Conversion count increases only after someone who signed up using your Referral link, subscribes to at least one of the CloudFiles products. It’s important to note: - Clicks are tracked as soon as someone opens the referral link - Conversions and total earnings are only recorded after the customer subscribes to a CloudFiles plan Given this, the only way to test out conversions is to create a CloudFiles subscription. Partner can also skip testing this and simply share the link. Partner will be notified whenever there is a conversion on the link. Conversions show up as soon as a subscription is created by the customer. Until a CloudFiles purchase is made, conversions and earnings will not be reflected in the dashboard. ## What's Next ? Now that you have a basic understanding of how the portal works, you are ready to share your link and start earning commissions. Refer to the next article on Earning Commissions for more information on this as well as CloudFiles co-marketing resources that can help you sell better. If you need more information on the portal and commission payouts, you can refer to the CloudFiles Partner Portal guide. --- # Earning Commissions https://help.cloudfiles.io/hubspot/earning-commissions # Earning Commissions Explains where to find the referral link in the Partner portal, how commissions are earned and calculated, where to share the link, and where CloudFiles fits best inside HubSpot workflows. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Once the Referral link is set up and tested, Partner can start using it to recommend CloudFiles and earn commissions. This article explains where, when and how to use the referral link effectively to drive conversions. ## Where to Find Referral Link The unique referral link is available inside the Partner portal under the Campaigns section. Copy this link whenever you want to share CloudFiles with potential customers. ![](https://media.help.cloudfiles.io/pt-earning-commissions-hs/01.png) ## How Commissions Work Partner earns commission when a referred user clicks the referral link, completes onboarding to CloudFiles and subscribes to a paid plan. To qualify for commission, the referred customer must subscribe to a paid plan within 30 days of clicking the referral link. Commission Details: - 30% recurring commission - Paid monthly - Valid for 12 months per referred customer > **Note** — Clicks alone do not generate revenue. Commissions are recorded only after a referred customer subscribes to a paid plan. To understand how commission payouts are processed, check Commission Payouts. ## Where to Share the Referral Link The referral link works best when shared naturally during conversations or workflows where document management challenges already exist in HubSpot. Some common ways partners recommend CloudFiles include: ### Client Implementations & Onboarding Introduce CloudFiles while helping customers set up or optimize their HubSpot portal, especially when documents, approvals, or file collaboration are involved. File handling is a very common pain point and almost every HubSpot customer can use the app in some or the other way. ### Content, Communities & Education Sharing through inbound channels such as content or social handles is also a great idea to quickly stack up clicks & conversions. Share the Referral link through: - Website, pages or blogs - LinkedIn posts - Newsletters - HubSpot communities - Educational or tutorial content - Webinars and enablement sessions ## Learn Where CloudFiles Fits Best Want to better understand where CloudFiles delivers value inside HubSpot? Explore our Co-Marketing Resources to gain better understanding. Here are a few important articles - - Common Use Cases: Explore common use cases across marketing, sales, customer success and operations teams. - Easy to Sell: Learn how to explain CloudFiles value, common customer pain points, competitive advantages and positioning strategies during customer conversations. --- # CloudFiles Partner Portal https://help.cloudfiles.io/hubspot/cloudfiles-partner-portal # CloudFiles Partner Portal The CloudFiles Partner Portal allows partners to manage referral campaigns, track performance, monitor commissions and receive payouts. This section is divided into 2 articles: the Portal Guide and Commission Payouts. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The CloudFiles Partner Portal allows partners to manage referral campaigns, track performance, monitor commissions and receive payouts. This section is divided into 2 articles: - Portal Guide: This article explains about the different sections available inside the Partner Portal, including Dashboard, Campaigns, Earnings, and Analytics. - Commission Payouts: Learn how CloudFiles commission payouts work, including manual payouts, Stripe payout setup and payout processing details. --- # Portal Guide https://help.cloudfiles.io/hubspot/portal-guide # Portal Guide The Partner Portal helps you track your CloudFiles program performance, manage campaigns and monitor commissions. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Partner Portal helps you track your CloudFiles program performance, manage campaigns and monitor commissions. Currently, the portal includes the following sections: - Dashboard - Campaigns - Earnings - Analytics Each section provides insights into different parts of your program performance ## Dashboard The Dashboard provides a quick overview of your Referral link performance which includes total link clicks, conversion percentage and earnings for a selected period. Use the date range dropdown in the top-right corner to filter metrics for different time periods. ![](https://media.help.cloudfiles.io/pt-portal-guide-hs/01.png) ## Campaigns The Campaigns section displays the active CloudFiles affiliate campaign along with campaign performance details. Here, you can view commission information, total earnings, conversions and copy your unique referral link from the Tracking Link column. Use the referral link when promoting CloudFiles to ensure clicks, conversions, and commissions are tracked accurately ![](https://media.help.cloudfiles.io/pt-portal-guide-hs/02.png) Before sharing the referral link with customers, CloudFiles recommends testing link to confirm clicks and tracking are working correctly. Learn more in Testing Referral Link ## Earnings The Earnings section helps you monitor commission activity and payout status. It includes details such as total earnings, paid/pending earnings and recent conversion activity. This section provides complete visibility into your commissions. ![](https://media.help.cloudfiles.io/pt-portal-guide-hs/03.png) ## Analytics The Analytics section provides performance insights for your referral activity over a selected period. It helps you track clicks, conversions, conversion trends and overall earnings performance over time. Use the analytics data to understand how the referral efforts are performing best. ![](https://media.help.cloudfiles.io/pt-portal-guide-hs/04.png) --- # Commission Payouts https://help.cloudfiles.io/hubspot/commission-payouts # Commission Payouts CloudFiles supports commission payouts through both manual payouts and automated Stripe payouts. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles supports commission payouts through both manual payouts and automated Stripe payouts. Partners can either submit payout invoices manually for bank transfer processing or connect a Stripe Express account to receive automated payouts through Stripe. ## Manual Commission Payouts By default, CloudFiles processes partner payouts manually. To receive a payout, the partner must share an invoice to partnerships@cloudfiles.io containing the conversion values, payout currency, bank account details and any required payment information. Once the invoice is received, the CloudFiles team verifies the commission details and initiates the payout within 4–5 Business days. After payment is initiated, a payment status or transaction reference is shared with the partner and the commission status is updated as Paid inside the Partner Portal. Bank transfer timelines may vary depending on the country and banking provider. ## Automated Stripe Payouts CloudFiles also supports automated commission payouts through Stripe. By connecting Stripe through the Partner Portal, partners can receive commission payments automatically whenever CloudFiles processes approved payouts. ### Understanding Stripe Connection When you connect Stripe through the Partner Portal, you will need to create a Stripe Express account specifically for receiving commissions. This account is separate from any existing Stripe account you may already use for your own business or payments. You can use the same email address, but the payout account created for commissions will remain a distinct Stripe Express account. All payouts are processed securely through Stripe and transferred directly between Stripe accounts. ### Viewing Stripe Payout Connection Status You can view your Stripe payout connection status from the bottom-left corner of the Partner Portal. If Stripe is not connected, you will see an option prompting you to connect your account before receiving payouts. ![](https://media.help.cloudfiles.io/pt-commission-payouts-hs/01.png) ### Connecting Stripe To connect your Stripe account, go to Settings → Payment inside the Partner Portal and click Connect with Stripe. You will need to select your business country, complete the Stripe onboarding flow and submit the required verification details. Once connected, your Stripe Express account will be ready to receive commission payouts automatically. ![](https://media.help.cloudfiles.io/pt-commission-payouts-hs/02.png) ### How Stripe Payouts Work After connecting Stripe, CloudFiles processes approved commissions and transfers the payout directly to your connected Stripe account. Stripe then transfers the funds to your linked bank account. CloudFiles does not charge any payout processing fee for transferring partners payouts through Stripe. Stripe may apply standard payout or banking fees based on your country and payout method. Bank transfers through Stripe typically take around 2–3 business days depending on your country and banking provider. ## Understanding Commission Eligibility To better understand how referral commissions are tracked and qualified before payouts are processed, check Earning Commissions. --- # Co-Marketing Resources https://help.cloudfiles.io/hubspot/co-marketing-resources # Co-Marketing Resources The Co-Marketing Resources section helps partners better understand CloudFiles, identify ideal customer opportunities and position the platform effectively during customer conversations. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The Co-Marketing Resources section helps partners better understand CloudFiles, identify ideal customer opportunities and position the platform effectively during customer conversations. Partners can also use these resources to understand how CloudFiles solves document management challenges inside HubSpot, where it fits within customer workflows and why businesses choose CloudFiles over disconnected document tools. This section includes the following articles: - Product Overview: Provides a high-level introduction to CloudFiles, core products offered and how CloudFiles helps businesses manage document workflows inside HubSpot. - Common Use Cases: Explains the most common ways businesses use CloudFiles, including document management, secure sharing, onboarding, document collection, proposal generation and workflow automation. Highlights the key product advantages, integrations, security capabilities, and operational benefits that make CloudFiles valuable for HubSpot customers. - Why Choose CloudFiles: Highlights the key product advantages, integrations, security capabilities, and operational benefits that make CloudFiles valuable for HubSpot customers. - Easy to Sell: This section covers common customer pain points, positioning guidance, competitive advantages and why CloudFiles is easy for prospects to understand during demos and sales conversations. - Partner Resources: This section contains useful links and resources for CloudFiles partners. --- # Product Overview https://help.cloudfiles.io/hubspot/product-overview # Product Overview CloudFiles is a document automation platform for HubSpot offering Document Management, Document Sharing, and Document Generation as its three core products. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles is a document automation platform built for HubSpot. With CloudFiles, partners can help customers streamline document-heavy processes such as onboarding, sales proposals, contract management, client collaboration and secure file sharing without leaving HubSpot. CloudFiles acts as a native document layer inside HubSpot, allowing teams to manage the complete document lifecycle directly from CRM records instead of relying on multiple disconnected tools. CloudFiles currently offers 3 core products for HubSpot users: - Document Management: CloudFiles Document Management helps businesses organise and manage files directly inside HubSpot, making it easier for teams to store, access and manage documents in one place. - Document Sharing: CloudFiles Document Sharing enables businesses to securely share files and folders with customers through branded portals, upload links and permission-based access controls. - Document Generation: CloudFiles Document Generation allows businesses to automatically generate personalised documents such as proposals, quotes, contracts etc. using HubSpot CRM data. --- # Document Management (Product Overview) https://help.cloudfiles.io/hubspot/hHYA-document-management # Document Management CloudFiles Document Management helps businesses manage, organize and access files directly inside HubSpot while keeping content connected with external storage platforms such as Google Drive, SharePoint, OneDrive, Dropbox, Box, AWS S3, Azure Blob Storage. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles Document Management helps businesses manage, organize and access files directly inside HubSpot while keeping content connected with external storage platforms such as Google Drive, SharePoint, OneDrive, Dropbox, Box, AWS S3, Azure Blob Storage ![](https://media.help.cloudfiles.io/pt-po-doc-management-hs/01.png) ## Record Widgets CloudFiles Record Widgets allow users to access and manage files directly from HubSpot records through the App Card and Sidebar Widget. These widgets support associating files, folders and datarooms within HubSpot records Users can perform actions such as previewing, downloading, renaming, replacing and sharing without leaving HubSpot. ![](https://media.help.cloudfiles.io/pt-po-doc-management-hs/02.jpg) ![](https://media.help.cloudfiles.io/pt-po-doc-management-hs/03.jpg) ## Real-Time Sync CloudFiles supports real-time synchronization through Mirror Storage. Any changes made in external storage platforms are automatically reflected inside HubSpot, ensuring users always work with the latest version of files and folders. This helps eliminate duplicate storage and reduces the need for manual updates. ## File & Folder Operations CloudFiles provides several file and folder management operations directly inside HubSpot. Users can preview, download, rename, replace, move, share and delete resources while maintaining the connection to the original storage platform. ![](https://media.help.cloudfiles.io/pt-po-doc-management-hs/04.png) ## Permissions & Access Control CloudFiles supports permission handling using both HubSpot user permissions and external storage permissions. This ensures users only access the files and folders they are authorised to view or manage. Changes made in external storage permissions are automatically reflected inside HubSpot. To learn more check Permission sets ## Workflow Automations CloudFiles workflow actions help businesses automate document management processes within HubSpot workflows. Teams can automatically create folders, attach files to records, move resources, update permissions, copy files, and organize content based on CRM activity and workflow triggers. To learn more, check workflow actions for Document Management ## Common Use Cases CloudFiles Document Management supports a wide range of business processes inside HubSpot, including deal and account file management. To explore common business scenarios and implementation examples, refer to the article- Common Use Cases. --- # Document Sharing (Product Overview) https://help.cloudfiles.io/hubspot/x78m-document-sharing # Document Sharing CloudFiles Document Sharing helps businesses securely share files and folders directly from HubSpot while keeping content stored in external platforms such as Google Drive, SharePoint, OneDrive, Dropbox, Box, and AWS S3. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles Document Sharing helps businesses securely share files and folders directly from HubSpot while keeping content stored in external platforms such as Google Drive, SharePoint, OneDrive, Dropbox, Box, and AWS S3. Users can generate secure sharing links, control access permissions, collect documents from external users and track engagement activity without moving files outside their original storage location. ## File & Folder Sharing CloudFiles allows users to create secure links for both files and folders directly from HubSpot records using the App Card and Sidebar Widget. ![](https://media.help.cloudfiles.io/pt-po-doc-sharing-hs/01.png) Shared resources open in the CloudFiles File Viewer, where recipients can preview documents and browse shared folders directly from the browser without requiring additional software or logins. Sharing links remain connected to the original file, ensuring recipients always access the latest version available in storage. ## Link Settings & Security CloudFiles provides detailed controls for managing shared links and external access. Users can enable or disable downloads, set expiry rules based on time or views, configure notification preferences and apply password protection or email verification. Access can also be restricted to specific email addresses, domains or HubSpot contact lists/segments. These settings help businesses securely manage document access while maintaining full control over shared resources. To learn more check Link settings and security ![](https://media.help.cloudfiles.io/pt-po-doc-sharing-hs/02.png) ![](https://media.help.cloudfiles.io/pt-po-doc-sharing-hs/03.png) ## Datarooms CloudFiles Datarooms provide a centralised portal- Datarooms, for sharing multiple files and folders through a single secure link. Datarooms can be organised using folders and file request sections, allowing businesses to structure content for onboarding, sales processes, client collaboration, due diligence and document collection workflows. Users can also collect documents from external users through file request blocks, with uploaded files automatically stored in the configured destination folder. ![](https://media.help.cloudfiles.io/pt-po-doc-sharing-hs/04.png) ## Engagement & Analytics CloudFiles provides detailed Engagement analytics for shared resources directly inside HubSpot. Businesses can track views, downloads, sessions, time spent, viewer activity and page-level engagement data. Analytics are associated with HubSpot records and can be used in workflows, reporting, dashboards and automations. CloudFiles also supports email attachment tracking and HubSpot tracking code integration for enhanced attribution and engagement visibility. ![](https://media.help.cloudfiles.io/pt-po-doc-sharing-hs/05.png) ## Workflow Automations CloudFiles workflow actions help businesses automate document sharing and document collection processes within HubSpot. Teams can automatically create datarooms, generate sharing links, update link settings, move uploaded HubSpot files into cloud storage and add files or request blocks to datarooms using HubSpot workflows. These automations help streamline onboarding, sales enablement, support, compliance, and document collection workflows. To learn more, check workflow actions for Document Sharing ## Common Use Cases CloudFiles Document Sharing supports a wide range of business processes inside HubSpot, including secure client document sharing, customer onboarding, sales enablement, dataroom collaboration and document collection workflows. To explore common business scenarios and implementation examples, refer to the article- Common Use Cases --- # Document Generation (Product Overview · HubSpot) https://help.cloudfiles.io/hubspot/qndg-document-generation # Document Generation CloudFiles Document Generation helps businesses create personalized documents directly from HubSpot using CRM data. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles Document Generation helps businesses create personalized documents directly from HubSpot using CRM data. ![](https://media.help.cloudfiles.io/pt-po-doc-generation-hs/01.png) Users can build dynamic templates in Microsoft Word, Excel and PowerPoint and generate personalised documents ## Microsoft Office Add-In CloudFiles Document Generation is powered by the Microsoft Office Add-in, which allows users to create templates directly inside Microsoft Word, Excel, and PowerPoint. The add-in connects with HubSpot and enables users to insert HubSpot properties, associated record data, images, tables, links and conditional logic into templates without requiring to code. ![](https://media.help.cloudfiles.io/pt-po-doc-generation-hs/02.png) ## Template Builder The CloudFiles Template Builder allows users to create dynamic document templates using HubSpot CRM data. Templates can include fields, images, hyperlinks, tables, line items, conditional sections, associated records, and reusable variables. Users can preview templates using live HubSpot records before publishing them for use inside HubSpot. The video below illustrates the process of creating a template using CloudFiles Document Generation product. [Watch video](https://www.youtube.com/embed/p49YtbzXTEI) ## Template Control Center The Template Control Center provides a centralised interface for managing all published templates. Users can view template details, manage versions, download templates, review version history, and maintain templates across the HubSpot account from a single location. ![](https://media.help.cloudfiles.io/pt-po-doc-generation-hs/03.png) ## Document Generation CloudFiles allows users to manually generate documents directly from HubSpot records using the Doc Generation widget. Published templates become available on HubSpot record pages, where users can generate original template format or PDF files using record data. Generated files can then be downloaded or stored in connected storage systems. In addition to manual generation from HubSpot records, CloudFiles also supports automated document generation through HubSpot workflows. Documents can be automatically generated based on CRM events such as deal stage updates and stored to defined in selected format. Learn more at CloudFiles Document generation ## eSignature Integration CloudFiles supports eSignature workflows through DocuSign integration. Users can connect their DocuSign account, define recipients, and insert signature, text and date fields directly into templates. Generated documents can then be automatically sent for signature as part of the document generation process. This allows businesses to manage document generation and signing workflows directly from HubSpot. ## Common Use Cases CloudFiles Document Generation supports a wide range of business processes inside HubSpot, including proposal generation, contracts, onboarding documents, agreements, operational documents and automated document workflows. To explore common business scenarios and implementation examples, refer to the article- Common Use Cases --- # Common Use Cases https://help.cloudfiles.io/hubspot/common-use-cases # Common Use Cases This article provides a high-level overview of common CloudFiles use cases and how teams use CloudFiles to manage, share and track documents directly within HubSpot. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles supports a wide range of document-centric workflows inside HubSpot across marketing, sales, customer success and operations teams. This article provides a high-level overview of common CloudFiles use cases and how teams use CloudFiles to manage, share and track documents directly within HubSpot. ## Marketing & Content Distribution Use Cases Marketing and CMS teams use CloudFiles to distribute marketing collateral, track engagement and improve lead qualification directly inside HubSpot. Common use cases include: - Sharing brochures, presentations and marketing assets - Gated content sharing using email walls or HubSpot forms - Tracking document engagement analytics - Lead segmentation based on document activity - Reporting on collateral consumption - Enabling teams to share centralised marketing content To Know more, refer to article-CMS & Marketing Users Quick Start ## Sales & customer facing teams Use Cases Sales and customer-facing teams use CloudFiles to manage customer documents, securely share files and track buyer engagement during deal cycles. Common use cases include: - Managing deal folders directly inside HubSpot records - Secure sharing and tracking prospect engagement on sales collateral - Sending personalised sharing links in emails and sequences - Creating customer-facing document portals - Automating notifications when customers interact with documents To Know more, refer to article- Sales & Service Users Quick Start --- # Why Choose CloudFiles https://help.cloudfiles.io/hubspot/why-choose-cloudfiles # Why Choose CloudFiles CloudFiles is built natively for HubSpot and helps businesses manage the complete document lifecycle directly inside the CRM. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles is built natively for HubSpot and helps businesses manage the complete document lifecycle directly inside the CRM. Instead of relying on multiple disconnected tools for storage, sharing, document generation and e-signatures, CloudFiles brings these capabilities together into a single platform deeply integrated with HubSpot. Businesses choose CloudFiles to simplify document-heavy workflows, improve collaboration, reduce operational overhead, and keep teams working inside HubSpot without switching between systems. ## Native HubSpot Experience CloudFiles works directly inside HubSpot using native widgets and workflow actions. Users can access, manage, share, and generate documents directly from contacts, companies, deals, tickets, and custom objects. This allows teams to manage document workflows without leaving HubSpot or relying on external applications. ![](https://media.help.cloudfiles.io/pt-why-choose-hs/01.png) ## Works with Existing Storage Systems CloudFiles integrates with existing cloud storage platforms such as Google Drive, SharePoint, OneDrive, Dropbox, Box, and AWS S3. Files remain stored in the customer’s existing storage environment instead of being duplicated or migrated into a separate system. This helps businesses maintain their existing folder structures, permissions, and storage processes. ![](https://media.help.cloudfiles.io/pt-why-choose-hs/02.png) ## Complete Document Lifecycle in One Platform CloudFiles combines document management, document sharing, document generation, and e-signature workflows into a single platform. Businesses can: - Manage files and folders - Share documents securely - Generate personalized documents - Collect files from customers - Track document engagement - Send documents for signature - Automate document workflows This reduces the need for multiple disconnected tools and creates a more streamlined experience for both internal teams and customers. ## Enterprise Security & Compliance CloudFiles meets enterprise-grade security and compliance requirements: - SOC 2 Type II — independently audited - ISO 27001 — certified - HIPAA — compliant - GDPR — compliant The platform also supports regional data residency requirements and ensures customer data remains secure throughout the workflows. To know more about CloudFiles Security & Compliance, visit CloudFiles trust portal ## Built for Scaling Teams CloudFiles is designed for sales, operations, customer success, finance, legal and onboarding teams that manage large volumes of customer documents inside HubSpot. By centralizing document workflows inside the CRM, businesses can improve collaboration, reduce process fragmentation and scale document operations more efficiently. --- # Easy to Sell https://help.cloudfiles.io/hubspot/easy-to-sell # Easy to Sell CloudFiles is easy to position because it solves a problem that almost every HubSpot customer already experiences- managing documents across disconnected systems. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles is easy to position because it solves a problem that almost every HubSpot customer already experiences- managing documents across disconnected systems. Most businesses already deal with scattered files, manual document workflows, sharing challenges and limited visibility into customer-facing documents. CloudFiles solves these issues directly inside HubSpot, making the value immediately understandable during demos and sales conversations. ## The Pain Already Exists in HubSpot Most HubSpot teams already struggle with document management challenges such as: - Files scattered across email threads and multiple storage systems - Manual proposal and contract workflows - Limited visibility into customer document engagement - Difficulty collecting files from customers securely CloudFiles centralizes these workflows inside HubSpot, helping teams manage customer documents more efficiently without constantly switching between tools. Because these pain points are already familiar to customers, the product value is usually easy to explain and demonstrate. ## Replaces Multiple Point Solutions Many businesses use separate tools for: - Cloud storage - File sharing - Proposal generation - Contract workflows - eSignatures - Engagement tracking - Client portals CloudFiles combines these capabilities into a single platform built natively for HubSpot. This helps businesses reduce tool sprawl, simplify operations and lower software costs. ## No Migration or Change Management One of the biggest advantages of CloudFiles is that customers can continue using their existing storage systems such as Google Drive, SharePoint, OneDrive, Box or AWS S3. Files remain in the customer’s own storage environment, eliminating the need for migrations, duplicate storage or major process changes. This reduces implementation complexity and helps customers adopt the platform faster. ## Native HubSpot Experience CloudFiles is built specifically for HubSpot and works directly inside HubSpot records, workflows, and automation tools. Teams can access relevant files from CRM records, generate documents using HubSpot data, securely share files, automate workflows and track customer engagement without leaving HubSpot. Since users continue working in a familiar environment, onboarding and adoption are typically much easier. ## Built for Enterprise Security & Compliance CloudFiles meets enterprise-grade compliance and security requirements, helping businesses confidently manage sensitive documents and customer data: - SOC 2 Type II — independently audited - ISO 27001 — certified - HIPAA — compliant - GDPR — compliant - Data residency — US, EU, UK and AU This makes CloudFiles suitable for businesses operating in regulated industries such as healthcare, finance, legal, and enterprise SaaS. To know more about CloudFiles Security & Compliance, visit CloudFiles trust portal ## Easy to Demonstrate CloudFiles provides highly visual workflows that are easy to showcase during customer calls and demos. Partners can quickly demonstrate document sharing, datarooms, proposal generation, workflow automation, analytics and engagement tracking. Customers are usually able to understand the product value when they are seeing the platform in action. ## Competitive Advantage Customers may initially compare CloudFiles to HubSpot’s native file attachments and a common customer response is: “We already use HubSpot file attachments” However, CloudFiles extends far beyond standard file storage capabilities. The platform adds secure sharing controls, cloud storage integrations, engagement tracking, datarooms, file requests and workflow automations. This gives partners a clear way to differentiate CloudFiles from basic HubSpot document management functionality. --- # Target Customers https://help.cloudfiles.io/hubspot/target-customers # Target Customers CloudFiles is ideal for HubSpot teams that manage large volumes of documents and want to streamline document workflows directly inside HubSpot. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction CloudFiles is ideal for HubSpot teams that manage large volumes of documents and want to streamline document workflows directly inside HubSpot. It is especially valuable for businesses already using cloud storage platforms such as Google Drive, SharePoint, Microsoft 365, OneDrive, Box, or AWS S3. ## Ideal Customer Profile CloudFiles is typically a strong fit for: - SMB to mid-market businesses - Teams using HubSpot as their primary CRM - Documents stored outside of HubSpot - Businesses managing customer-facing documents regularly - Teams looking to automate document workflows ## Key Buyer Personas ### Sales & RevOps Teams Need proposal tracking, contract generation, and document engagement visibility. Common Use Cases - Proposal generation - Deal datarooms - Contract workflows - Proposal tracking ### Marketing Teams Need centralized and trackable content sharing. Common Use Cases - Marketing asset sharing - Partner enablement - Campaign collateral management ### HubSpot Admins Need organized files and workflow automation inside HubSpot. Common Use Cases - File organization - Automated workflows - Record-level file associations ### IT & Security Teams Need secure document management while keeping files in company-owned Cloud storage. Common Use Cases - SharePoint integrations - Permission-based access ### Operations & Support Teams Need secure collaboration and automated document workflows. Common Use Cases - Customer onboarding - File collection - Secure document sharing - Process automation ## Pain Signals to Look For A prospect is usually a strong CloudFiles candidate when they say things like: - “Our files are scattered across multiple systems.” - “We don’t know if customers opened our documents.” - “Our proposal and contract process is manual.” - “We need secure file sharing from HubSpot.” - “We manually move files between HubSpot and cloud storage.” ## Industries Where CloudFiles Fits Well | Industry | How CloudFiles Helps? | |---|---| | Financial Services | Automates KYC collection, loan documents, investor reporting, and contract signing while keeping a secure audit trail for compliance. | | Healthcare & Life Sciences | Helps teams securely collect patient forms and manage HIPAA-compliant documents. | | Technology & IT | Makes it easy to share product documentation, proposals, and onboarding materials with tracking and automated workflows directly inside HubSpot. | | Legal & Compliance | Simplifies NDA and contract generation, secure client document collection, and maintaining organized, audit-ready records. | | Real Estate | Automatically organizes property documents, shares listing packs with engagement tracking, and streamlines agreement and approval workflows. | --- # Partner Resources https://help.cloudfiles.io/hubspot/partner-resources # Partner Resources This section contains useful links and resources for CloudFiles partners. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction This section contains useful links and resources for CloudFiles partners. Partners can use these resources while referring customers, learning about CloudFiles capabilities, accessing technical documentation or connecting with the CloudFiles team. | Resource | Purpose | Quick Link | |---|---|---| | Product overview | Learn about CloudFiles features and capabilities | cloudfiles.io/hubspot | | HubSpot Marketplace listing | Access the CloudFiles marketplace listing and reviews | ecosystem.hubspot.com → search CloudFiles | | Help documentation | Explore setup guides and product documentation | help.cloudfiles.io/hubspot | | Affiliate program | Learn about CloudFiles Affiliate program | cloudfiles.io/hubspot/partner-program | | Affiliate program Agreement | Review CloudFiles Affiliate program Agreement | CloudFiles Affiliate Program Agreement | | Book a call | Schedule a meeting with the CloudFiles team | meet.cloudfiles.io | | Trust & compliance portal | Review security, compliance, and legal documentation | trust.cloudfiles.io | | Partner enquiries | Contact the partnerships team for support | Email- partnerships@cloudfiles.io | | Support enquiries | Contact the CloudFiles support team for technical assistance | Email- support@cloudfiles.io | ## Contact Us If you have questions about the CloudFiles Affiliate Partner Program or want to explore how CloudFiles fits for use cases, feel free to reach out. - Email us at partnerships@cloudfiles.io - Or schedule a time to speak with our team: Book a call We’re happy to walk you through the program, positioning and how you can start earning effectively. --- # FAQs (Guide) https://help.cloudfiles.io/hubspot/Noby-faqs # FAQs The FAQ section covers common questions and edge-case scenarios related to referral attribution, partner payouts, converted revenue tracking and Partner Portal limitations. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction The FAQ section covers common questions and edge-case scenarios related to referral attribution, partner payouts, converted revenue tracking and Partner Portal limitations. These articles are intended to help partners understand how CloudFiles handles different referral and conversion situations, including cases where automatic attribution may not work as expected. --- # In how much time do commissions reflect in the portal ? https://help.cloudfiles.io/hubspot/in-how-much-time-do-commissions-reflect-in-the-portal # In how much time do commissions reflect in the portal ? Explains how quickly commissions for new subscriptions, upgrades, and downgrades/cancellations reflect in the partner portal. > Kind: FAQ · Updated: Jun 4, 2026 Depending on the action taken by the customer, the subsequent commission will be updated in your partner portal. Here is a list of actions that customers can take and how it reflects in your portal - - New subscription - These are reflected instantly. As soon as a new customer subscribes to the CloudFiles app, your earnings and conversions would be updated in your partner portal. - Upgrade - If an existing subscription associated to your referral is upgraded (adding new seats, purchasing new products, buying add-ons etc...), the commissions in the portal might take sometime to reflect. This is because Stripe takes some time to process the changes and charge the customer. As soon as Stripe charges the customer for the upgrades, the commissions would be reflected in the portal as well. - Downgrade & Cancellation - Downgrades & cancellations take effect only at the end of the billing cycle. Thus any downgrade or cancellation in the current billing cycle shows up as a reduction in monthly commissions in the next billing cycle. If your customers are reporting subscriptions for which you are not seeing corresponding earnings, write to us at support@cloudfiles.io --- # Customer Has Already Installed CloudFiles https://help.cloudfiles.io/hubspot/customer-has-already-installed-cloudfiles # Customer Has Already Installed CloudFiles If a customer has already installed CloudFiles but hasn't started a paid subscription, the purchase can still be attributed to a partner account by having the customer use the referral link before purchasing. > Kind: FAQ · Updated: Jun 4, 2026 ## Introduction If a customer has already installed CloudFiles but has not yet started a paid subscription, the purchase can still be attributed to a partner account. This ensures the converted revenue is tracked correctly for commission payouts. ## What Partner Should Do Before the customer proceeds with purchasing a paid plan: - Share your referral link with the customer. - Ask the customer to open the referral link(tracking cookies will be added to user browser) and then sign in to their CloudFiles account. This will add the associate their account to your referral code. - They can then continue the purchase flow from there. > **Note** — Only when the CloudFiles purchase is completed within 30 days of referral link click, CloudFiles can capture and attribute the conversion to your partner account. ## Why This Is Important CloudFiles uses the referral link cookies(30 days attribution) to identify and attribute partner-driven conversions. If the customer upgrades without using the referral link, the conversion may not be automatically associated with your partner account. ## Best Practice Always ask customers to use your referral link before starting a trial, installation or subscription purchase process. --- # Customer Has Already purchased CloudFiles https://help.cloudfiles.io/hubspot/customer-has-already-purchased-cloudfiles # Customer Has Already purchased CloudFiles If a customer has already subscribed to CloudFiles before using your referral link, automatic attribution cannot be completed through the Partner Portal. > Kind: FAQ · Updated: Jun 4, 2026 ## Introduction If a customer has already subscribed to CloudFiles before using your referral link, automatic attribution cannot be completed through the Partner Portal. In such cases, you need to get in touch with the CloudFiles team. The team can then suggest the correct steps to attribute the purchase. The process will be as follows - - Customer needs to cancel the subscription. - CloudFiles team then cancels the subscription immediately. - Customer needs to re-subscribe after the CloudFiles team has processed the cancellation from their side. > **Note** — Simply cancelling the subscription and then re-subscribing does not associate the subscription properly. This is because, in the CloudFiles app, cancellation does not take affect immeidately. The app waits for the next billing cycle to process the subscription. Thus, if you want to attribute the subscription correctly without the CLoudFiles team getting involved, you need to have the customer cancel the subscription, wait till the next billing cycle for the cancellation to process, and then re-subscribe. --- # Can I Get a List of Converted Customers? https://help.cloudfiles.io/hubspot/can-i-get-a-list-of-converted-customers # Can I Get a List of Converted Customers? Currently, the Partner Portal does not provide access to a detailed list of converted customers or subscribed accounts. > Kind: FAQ · Updated: Jun 4, 2026 Currently, the Partner Portal does not provide access to a detailed list of converted customers or subscribed accounts. You can try reaching out to the CloudFiles to get more information on your referrals. We can share holistic anonymized information with the partners. --- # Which Payout Methods Are Supported? https://help.cloudfiles.io/hubspot/which-payout-methods-are-supported # Which Payout Methods Are Supported? CloudFiles supports partner payouts via manual bank transfer or Stripe. > Kind: FAQ · Updated: Jun 4, 2026 ## Introduction CloudFiles currently supports partner payouts through Manual bank transfer payouts or Stripe payouts. Partners can either submit payout invoices manually or connect Stripe to receive automated payouts. ## Manual Bank Transfer Payouts For manual payouts, partners must share an invoice to partnerships@cloudfiles.io containing the conversion values, payout currency, bank account details and any required payment information. Once the invoice is received, CloudFiles verifies the commission details and initiates the payout within 4–5 working days. ## Stripe Payouts CloudFiles also supports automated payouts through Stripe. Partners can connect a Stripe Express account inside the Partner Portal to receive payouts directly to their bank account. Payouts cannot be processed through Stripe until Stripe onboarding is completed successfully. ## Important Notes - CloudFiles does not charge payout transfer fees for Manual bank transfer/ Stripe payouts. - In case of Stripe Payouts, Stripe may apply standard payout or banking fees depending on the country and payout method. --- # Use-Cases https://help.cloudfiles.io/hubspot/use-cases # Use-Cases Learn how the integration between HubSpot and CloudFiles empowers sales, marketing, and service teams to effortlessly handle file-related tasks beyond standard capabilities. Discover use cases like capturing leads from CloudFiles and requesting sensitive files from contacts. > Kind: Guide · Updated: Jul 8, 2026 The HubSpot-CloudFiles integration enables a host of file-related use-cases for sales, marketing & service teams in HubSpot that are not possible using standard functionality. Read on to understand the most common ones on this page. - Capture contacts from CloudFiles leads in HubSpot: CloudFiles in HubSpot improves lead generation by automatically creating contacts from document views, using soft-gating for email entry and no-gating for personalized links to prospects. - Request sensitive files from clients into external storages: We have created an automated workflow to request files from customers via HubSpot deals and transfer them to Google Drive, with options for other cloud storages. - Ungated analytics for collateral in HubSpot email campaigns: CloudFiles enables personalized file links via URL parameters, allowing detailed analytics collection in HubSpot without gating by simply modifying email template links. --- # Capture contacts from CloudFiles leads in HubSpot https://help.cloudfiles.io/hubspot/capture-contacts-from-cloudfiles-leads-in-hubspot # Capture contacts from CloudFiles leads in HubSpot Learn how to use CloudFiles as a powerful lead generation tool in HubSpot, capturing contacts via soft-gating or no-gating document links. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction Using file views as a lead generation tool in HubSpot using CloudFiles Traditionally, HubSpot has made it possible to check who has viewed a certain document through the HubSpot Documents tool. The tool can enable soft ID validation by asking the viewer to enter their email ID. This information is logged and can be accessed later through the Document Analytics. However, the modern marketer wants more. They want these leads to auto-create in HubSpot so that the sales team is automatically notified of the corresponding actions like following up on email. While this was not possible in HubSpot Documents, it is now possible with CloudFiles. CloudFiles offers 2 types of document-based lead capture methods - Capture with Soft-Gating: Using this feature, you can enable soft-gating on your documents, thus asking the viewer to enter an email ID before accessing the document. Based on this email, a contact can be automatically created / updated in your Contact list. This feature is recommended when attaching documents as CTAs in your website or when posting links on social media handles. Capture with No-Gating: Through this feature, you can create personalized link for any email ID. When this personalized link is accessed, a soft-gating is simulated without requiring the viewer to enter their email ID. This feature is recommended when sending personalized communication to a pre-defined list of prospects. We provide step-by-step instructions for both of these features below. ## Capture with Soft-Gating - Make sure CloudFiles is installed in your HubSpot Account. This must be done by the account administrator through the HubSpot Marketplace.CloudFiles HubSpot Integration is live here - Create a dummy record For the puprpose of this tutorial, we are going with a dummy company however this can be a deal or a contact as well ### Steps to capture details with soft-gating: - Open the record & locate the CloudFiles widget in the sidebar as shown below ![](https://media.help.cloudfiles.io/uc-capture-contacts-hs/01.png) - Upload a file This can be any of the supported formats such as docx, xls etc... You can also import from cloud storages - Open the Link Security settings and enable soft ID Validation as shown below. This will require the client to enter their Email ID when accessing the document. Refer to the Link Security Settings article to know more about this feature. ![](https://media.help.cloudfiles.io/uc-capture-contacts-hs/02.png) - Now share the link in the wild Attach it in your emails, as CTAs on your website or send it to specific clients. - When your clients access the link, they will be asked for an email as shown below ![](https://media.help.cloudfiles.io/uc-capture-contacts-hs/03.png) - CloudFiles will check the email entered and reference it with your contact list. If a contact with this email does not exist, a new contact will be created - CloudFiles will post a timeline activity on this record (this may take up to 5 minutes after the file has been viewed) notifying you that this client has viewed the file. That's it, now you know how to capture leads using soft-gating on your files. ## Capture with No-Gating - Make sure CloudFiles is installed in your HubSpot Account. This must be done by the account administrator through the HubSpot Marketplace. CloudFiles HubSpot Integration is live here - Create a dummy record For the purpose of this tutorial, we are going with a dummy company however this can be a deal or a contact as well ### Steps to capture details without gating: - Open the record & locate the CloudFiles widget in the sidebar as shown below ![](https://media.help.cloudfiles.io/uc-capture-contacts-hs/04.png) - Upload a file. This can be any of the supported formats such as docx, xls etc... You can also import from cloud storages - Get the link of the file form the Get Link Dialog as shown below ![](https://media.help.cloudfiles.io/uc-capture-contacts-hs/05.png) - Append the email of the contact for whom you would like to personalize this link using the below format ?email=siddharth@cloudfilesapp.co - This way, you can create as many personalized copies of the link as you want. - Share the personalized links with your clients through email or your favorite medium - When your clients access the link, they will be straight away shown the file. CloudFiles will log the specific email ID in the URL parameter (as shown above) - CloudFiles will check this email and reference it with your contact list. If a contact with this email does not exist, a new contact will be created - CloudFiles will post a timeline activity on this record (this may take up to 5 minutes after the file has been viewed) notifying you that this client has viewed the file. That's it, now you know how to capture leads using no-gating on your files. Need help? Book time with our team of experts. --- # Request sensitive files from clients into external storages https://help.cloudfiles.io/hubspot/request-sensitive-files-from-clients-into-external-storages # Request sensitive files from clients into external storages Learn how to use the CloudFiles app in HubSpot to securely collect and store sensitive files in compliance with laws, including integrating the app with HubSpot and transferring files to an external cloud storage platform. > Kind: Guide · Updated: Jun 4, 2026 ## Introduction ### Why HubSpot does not allow PII? HubSpot's terms of conditions specify that it does not support storage of sensitive data. This includes files stored in the HubSpot file manager tool. Personally identifiable information (PII) which includes personal documents such as passport, government identifications etc… cannot be stored in HubSpot. Still, as business professionals, we require collecting such important documents and store them in a cloud storage such as Google Drive or SharePoint. Here's where CloudFiles can help your business. Through the CloudFiles app you can collect this information through HubSpot and send it your backend storage which is compliant with all the laws. ### How & Why CloudFiles can help? CloudFiles is a GDPR-compliant and deeply integrated tool for HubSpot. It provides a feature called file requests which can be used with HubSpot workflows to collect & store sensitive files. These files can be then sent to folders in SharePoint, Google Drive, OneDrive, Box, Dropbox or even AWS S3 to be stored in a compliant way. Thus, your business overcome HubSpot file manager limitations to store PII and PHI by using CloudFiles as a layer to collect and transfer the files from HubSpot to an external cloud storage. ## How does the end result look like Using the various CloudFiles workflow actions, we have created a process such that whenever a deal is created, a link would appear on the left side of the deal record. This link can be sent to customers manually or automatically. When the customer opens it, they would be able to upload files that will go into a folder on Google Drive. We would be able to see the uploaded files in Google Drive as well as from the deal record in HubSpot. In the GIF below, we see this in action. The GIF is divided into 6 parts - - Create a new deal - Wait for the link to appear - Open link in new tab - Upload files - See uploaded files in HubSpot - See uploaded files in Google Drive It's important to note that the same is possible with SharePoint, OneDrive, Box, Dropbox and AWS S3. Moreover, the same process can run with contacts, companies & tickets as well in HubSpot. [Watch video](https://www.youtube.com/watch?v=7BlUKHfCzbI&t=76s) Read on to understand how to install the app and setup the workflow to achieve the same result. ## Setup ### Install CloudFiles in HubSpot Before we delve into the tutorial, you need to install CloudFiles into a HubSpot account. You can install the app from the HubSpot marketplace using the steps below. These are also detailed here in the installation guide - - Access the - Click on the "connect button" on the top right of the page. - Log in with your HubSpot Administrator account, and click "connect App" button. - Once the app is installed, you should see the CloudFiles widget on the right sidebar of your deal, company, ticket and contact records. Check this Now that you have the app installed, you can connect an automation user for your workflow executions. ### Connect Automation User for Storage In addition to installing CloudFiles in HubSpot, you also need to set an automation user for the workflow to work. This is the integration user that will be used by the workflow actions to pass files into the cloud storage. To connect an automation user, simply head over to app.cloudfiles.io > Settings > Integrations > Google Drive and login through your google account. What is an 'Automation User' and how does it work? this article explains everything you need to know about the automation user, including what it is, why it's useful, and how it operates. ## Design of the workflow To summarize the process, we will create a deal workflow using HubSpot. This workflow will contain various CloudFiles related actions. It will first create a dataroom and add a file request block to it. It will then configure the file request block to store the documents in a specific folder in Google Drive. Finally it will create a sharing link for the dataroom and paste it in one of the deal properties. The workflow consists of the following 6 elements - - Trigger- Standard contact creation trigger that would fire this workflow when a new contact is created - Create Dataroom- CloudFiles' Dataroom feature will be used to request files - Create attachment- Associates the newly created dataroom to HubSpot record so we can see file uploads from the record itself - Add to Dataroom- A file request block will be added to dataroom with the destination set as a Google Drive folder - Share Attachment- Create a sharing link of the dataroom that can be sent to customers to upload files - Copy Sharing Link- Copy the link in a property to be used manually and automatically Here's how our final workflow looks like. We detail these elements in the sections below. ![](https://media.help.cloudfiles.io/uc-request-sensitive-files-hs/01.png) ### Trigger We would like to have a sharing link ready on our HubSpot property whenever a new deal is created. For this reason, we choose a simple Deal Create Date is Known trigger. The trigger is shown below. ![](https://media.help.cloudfiles.io/uc-request-sensitive-files-hs/02.png) ### Action - Create Dataroom CloudFiles datarooms are very much like file portals. They can be used to share multiple files and folders. They can also be used to request files from customers. We will discuss this file request feature later. In this section we detail the "Create Dataroom" workflow action which can auto-create datarooms. The Create Dataroom action has 3 parameters that have been detailed in Create Dataroom Action article. Here is a summary - - Name - Dataroom name that can be created using personalization tokens. This name appears on top of the dataroom. - Description - Any description that can also be created using personalization tokens. - Template ID (optional) -This is used if you want to clone an existing dataroom. This is left blank for this tutorial. Here's how our final workflow action looks. ![](https://media.help.cloudfiles.io/uc-request-sensitive-files-hs/03.png) ### Action - Create Attachment In order to access the uploaded files from the contact record itself, it is important to associate this dataroom to the contact. This way we can see it in the contact sidebar. CloudFiles provides an easy to use "Create Attachment" action that can create this association automatically with the previously created dataroom. The "Create Attachment" action will need the following properties - - Library - Since we are attaching a dataroom, set this to "CloudFiles" - Resource Type - In this dropdown, select Dataroom option - Resource ID- This can be selected using the dropdown. The New Dataroom ID is returned by our previous action where we created the dataroom. See the screenshot below. - Other Properties - Since we are attaching a dataroom, other properties are not important and must be left blank. You can learn more about this action in this help article. Here's how our final action looks like. ![](https://media.help.cloudfiles.io/uc-request-sensitive-files-hs/04.png) ### Action - Add to Dataroom The Add to Dataroom action is where we add a file request block to our newly created dataroom and set the destination parameters such that the uploaded files go into a Google Drive Folder. There are a bunch of parameters available in this action. You can see all the details about this action in this help article. For our use-case, we will use the following parameters of the actions - - Dataroom ID - We want to add a file request block to the dataroom that we created above. So we will simply choose New Dataroom ID from the return values of Create Dataroom Action. This is exactly the same as getting the Resource Id in the last section. - Type- We want to add a file request block, so we choose 'File Request' here. - Name- This is the name you wish to give your file request block. Usually it's a good practice to use personalization tokens or names of specific documents that the customer needs to upload here. - Description- This is an additional level of detail that you can give to your file request block. E.g. the specifications or count of files that need to be uploaded here. - Add a destination- Since we want to store the file in Google Drive, we will select Yes here. Additional parameters will show up below. - Library- Choose Google Drive here. This is the only change that needs to be made if SharePoint, OneDrive or some other cloud storage needs to be used. - Shared Drive ID- Choose Google Drive here. This is the only change that needs to be made if SharePoint, OneDrive or some other cloud storage needs to be used. - Path to destination folder- This specifies the final folder where the file must go to. You can enter a '/' separated path here. Check this article to see how to copy this easily from the CloudFiles interface. Here's how our final action looks - ![](https://media.help.cloudfiles.io/uc-request-sensitive-files-hs/05.png) ### Action - Share Attachment In order to share with customer, we need to create a personalized sharing link of the dataroom. Since we have already created a record attachment for the dataroom in one of the earlier steps, we will simply use the share attachment action to create a sharing link. We will later copy this link into a deal property. This action only needs one parameter which is the ID of the attachment to share. We can grab this ID from our previous Create Attachment action. This is shown in the graphic below. You can check this help article to learn more about the Share Attachment action. ![](https://media.help.cloudfiles.io/uc-request-sensitive-files-hs/06.png) ### Action - Copy link to property Finally we will use the Copy Property Value Action provided by HubSpot to copy the sharing link into one of the properties. For this tutorial, we created a contact property called 'HubSpot Demo - Dataroom URL' that we are using to copy the files into. The sharing link can be grabbed from the return values of the Share Attachment that we used above. This is shown in the graphic below. ![](https://media.help.cloudfiles.io/uc-request-sensitive-files-hs/07.png) ## More Use-cases CloudFiles provides a few other workflow actions as well which can be used creatively to create even more complex process automations. We have a detailed a few actions below which, in combination with the above tutorial, can enable some complex use-cases. You can also read about all the CloudFiles' workflow actions here. - Create Folder Action - This action can help create a personalized folder for the contact (or any record) in an external drive. You can use this multiple times to create folder hierarchies & set one of the folders as the destination of upload. Thus your uploaded files would always stay segregated. - Move HubSpot Files- This action can move the files uploaded through HubSpot Forms to an external storage. Thus, if you are already using a HubSpot form to request files, you can now move them to external folders. Moreover, when requesting more files, you can send the dataroom link instead so that the customer does not have to fill the whole form again. - Create Attachment Action - In the tutorial above, we only created a dataroom attachment on the record. We can also attach the upload folder directly so that with a single click, the HubSpot user can go to the upload folder from the contact. - Add to Dataroom Action - Along with file request blocks, you can also add files & folders into the dataroom using the automation. This enables you to not only show the customer all the files they have uploaded till date, you can also share other stuff with them to view when they are uploading those files. - Update Link Settings Action - We created only a basic CloudFiles link above. You can add a lot of security and analytics settings on it automatically using the Update Link Settings Action. E.g. you can add email authentication such that only this contact's email is allowed to view the dataroom. ## Error Debugging In case you see some issues with the final execution, you can investigate the workflow execution error logs. You can also send us these logs and we can inform you of the issue or resolution quickly. Ping a screenshot of error logs as covered below on chat (bottom right) or on support@cloudfiles.io To get the execution error logs in HubSpot workflows, go to the workflow edit screen. On top right click on Enroll > View Enrollments. A sidebar opens up on the right with all your record executions. Hover over the problematic one and click on Enrollment details. In the details you will see success / error against each of the action execution for this workflow run. You can expand and check the error logs here. ![](https://media.help.cloudfiles.io/uc-request-sensitive-files-hs/08.png) The most common issues include - - Not connecting an automation user. See the setup step above. - Mentioning incorrect drive / path in Add to Dataroom action. Take these parameters carefully from the CloudFiles app as mentioned above. ## Pricing Info This particular use-case is possible on all CloudFiles plans and works with any HubSpot licenses provided you have workflow access available. However, there are a few limits you need to be aware of. The use-case would require 1 dataroom per client and consumes multiple workflow actions, thus the limits on datarooms and workflow actions on each plan become important. Here's relevant pricing & limits info about these - - Pro Plan - If you are planning to purchase the PRO plan ($19 / user / month) on CloudFiles, this plan offers 10 datarooms / user / month and 100 workflow actions / user / month. You can purchase more PRO licenses or talk to us to relax some of the limits if your requirements are in this ballpark. - Business Plan - This plan is much more suitable for this use-case at $100 / month for 3 seats. This gives you 150 datarooms / month and 750 workflow actions / month. Again you can talk to us to adjust the limits or get a discount if your requirements are in this ballpark. - Enterprise Plan - The enterprise plan starts at $150 / month for 3 users and offers custom limits on datarooms and workflow actions. Additionally, you can also white-label the datarooms created to provide a more branded experience. This plan is perfect if you have volume requirements for this use-case and need branding on the shared datarooms. Note that we offer progressive pricing, so if purchasing more seats, the per user per month costs reduces. ## Summary In this tutorial, we created workflow with actions from CloudFiles to create an automation that lets us request files from our customers through HubSpot deal objects and transfers them to Google Drive. It can be extended to other cloud storages and other HubSpot records as well. We also saw a few other actions that make even more complex use-cases possible. CloudFiles is a document automation and sharing platform that integrates very deeply with HubSpot. It is useful for any sales, marketing or service team who have file management and sharing requirements and are considering or already using HubSpot. To learn more about the app, visit their Hubspot integration page. Need help? Book time with our team of experts. --- # Ungated analytics for collateral in HubSpot email campaigns https://help.cloudfiles.io/hubspot/ungated-analytics-for-collateral-in-hubspot-email-campaigns # Ungated analytics for collateral in HubSpot email campaigns Learn how to collect personalized analytics on file links without gating them using CloudFiles and HubSpot. > Kind: Guide · Updated: Jun 4, 2026 ## About this use-case CloudFiles offers a cool feature to personalise the file link using a URL parameter. This, when combined with HubSpot's personalisation tokens for marketing & sales email templates, offers a neat way to collect personalised analytics on any CloudFiles link, without gating it. This means you can collect precise and detailed file, folder and dataroom analytics right on the HubSpot record, by simply changing a link in your email templates. In the section below, we detail the elements used to make this use case possible. We then detail each of the elements so you can edit your own campaigns and collect personalized ungated analytics on your collateral. ## Elements of the use-case This use-case utilizes a couple of features from HubSpot & CloudFiles. It also utilises the power of the deep integration between CloudFiles & HubSpot, which makes all the information available back in HubSpot. We talk about link creation, personalisation, analytics collection and sending it to HubSpot in the steps below. Refer to the sections below for more detailed information on these steps. - Creating a CloudFiles Link - In this step, we create a singular CloudFiles link for our asset that we will use for this specific campaign. - Link Personalisation in HubSpot Email Templates - In this step, we use HubSpot's personalisation token feature in marketing and sales email templates to create a personalised hyperlink out of our CloudFiles link. - Sending test email - In this step, we send a test email to make sure that the personalisation parameter was added correctly in the generated email. - Collecting Analytics in CloudFiles - We access the link from the email above and see the personalised analytics collected in the CloudFiles dashboard. - Collecting Analytics in HubSpot - We see how the analytics get automatically pushed to HubSpot and can be accessed from the record itself. ## 1 - Creating a CloudFiles Link CloudFiles links are secure & publicly shareable links that can collect detailed and drill-down analytics. There are multiple ways of creating this link from within, and outside of HubSpot. Since email campaigns are usually run by marketers, we recommend using our CloudFiles Webapp Dashboard (https://app.cloudfiles.io) to maintain your content library and manage the links of your files. > Check this article on how to access the dashboard from a HubSpot record How to go to the CloudFiles App Dashboard? Once on the dashboard, you can follow the simple steps given below to create a CloudFiles link for your asset(s). ### Creating a CloudFiles Link Using CloudFiles, you can easily create shareable links for files, folders, and data rooms directly from the dashboard under the Document Sharing Tab. - From a file Navigate to the file from the libraries section from the left-hand side and use the “Create Link” option available on the file details screen. Once the link is named, it is instantly generated and ready to share. ![](https://media.help.cloudfiles.io/uc-ungated-analytics-hs/01.png) - From a folder Navigate to the desired folder, open it and click on "Create Link". From there, you can create a new link, name it, and configure any required settings. ![](https://media.help.cloudfiles.io/uc-ungated-analytics-hs/02.png) - From a data room Select the Dataroom tab from the left-hand side, and open any specific Dataroom. Use the "Create link" option to generate a secure shareable link. You can define settings such as security and expiry while creating the link, ensuring controlled access to your content. ![](https://media.help.cloudfiles.io/uc-ungated-analytics-hs/03.png) While you don't need to update any settings for this use-case, you can choose to configure something on this step if you'd like. ![](https://media.help.cloudfiles.io/uc-ungated-analytics-hs/04.gif) ## 2 - Link Personalization in HubSpot Email Templates Once you have the link ready, go back to HubSpot and edit one of your marketing or sales email templates. Locate the hyperlink that you'd like to update and add the copied CloudFiles link here. Then, add a personalization parameter as shown below at the end of the link. ![](https://media.help.cloudfiles.io/uc-ungated-analytics-hs/05.png) > That's it ! Now you are ready to test and collect personalized analytics. ## 3 - Sending test email You can use HubSpot's test email functionality to send a test email to yourself and see if the link was personalized correctly. The link in the email inbox should have your email appended to it at the end. The format is shown in the graphic below - ![](https://media.help.cloudfiles.io/uc-ungated-analytics-hs/06.png) ## 4 - Collecting Analytics in CloudFiles Click on the link that was sent in the email. When you access this link, CloudFiles will not show any email wall but will still collect personalised analytics. Spend a few seconds on your asset for the analytics to build up. Then come back to the CloudFiles interface and view the analytics section of the link details page, as shown below. ![](https://media.help.cloudfiles.io/uc-ungated-analytics-hs/07.gif) ## 5 - Collecting Analytics in HubSpot Since CloudFiles integrates deeply with HubSpot, all of this analytics information is also pushed on the contact associated with that email. If CloudFiles does not find a contact in your HubSpot, it will create a new one and push the analytics on that record. The analytics can be accessed using the timeline event. The graphic below shows the Timeline event posted by CloudFiles on the record when view happens. ![](https://media.help.cloudfiles.io/uc-ungated-analytics-hs/08.png) It can also be used in your list filters and workflow triggers to segment your lists based on engagement. The graphic below shows the CloudFiles File Viewed Event that can be used for this purpose. ![](https://media.help.cloudfiles.io/uc-ungated-analytics-hs/09.png) --- # Release notes https://help.cloudfiles.io/docs/releases/ # Release notes Every CloudFiles release across Salesforce, HubSpot and the API. ## v5.284 — Sep 3, 2026 - Tree view for attached folders: browse nested folders as an expandable tree, with subfolders and files shown inline. - Bulk delete in the Salesforce widget list view: select several files and remove them in a single action. - New workflow step, Run a Salesforce Flow: trigger any Salesforce Flow from a Document AI workflow. ## v5.283 — Sep 1, 2026 - Files opened in the widget preview can be printed, controlled by a Print toggle in the widget configuration. - Get Doc-Gen Templates returns each template's runtime variables, so a Flow can populate template values dynamically. ## v5.281 — Aug 26, 2026 - Document generation flow actions (Generate Document, Generate Document (Sync), and the batch action) can identify a template by its Unique Template Key, so the same automation runs in any org without being rewired to local template records. - Changeset tables include a Match column showing which template in the current org an incoming changeset will land on, so the impact is visible before approval. ## v5.280 — Aug 24, 2026 - Template Migration: migrate Document Generation templates in bulk between Salesforce orgs, parent or sibling, using changesets. ## v5.279 — Aug 21, 2026 - Document Mapper has a refreshed interface, with the ability to create a new related record directly from a lookup field and to open any record the mapper creates through a link. Record creation at runtime works on its own or as a fallback in Get Existing mode. - Document Mapper child lookups prefill from the record the user is on, and a child collection's lookup field has its Page Context step set automatically when the field is added. - Document Mapper fields can be reordered by dragging, and results are returned in the same order. ## v5.278 — Aug 18, 2026 - Document sets in Doc Mapper: several related files can be read together to fill a single record. Sets can be built and test-run in the config builder, started from Flows or the upload page, and reviewed as one run. Incomplete sets are refused with the missing document named. - Doc Mapper runs with large extraction results now save, approve and re-open reliably, lifting the size ceiling that previously affected them. - Doc Gen templates can now be tagged, and Get Doc-Gen Templates accepts a Tags collection with a Match All toggle. Object Type is optional when tags are passed. ## v5.277 — Aug 13, 2026 - Approving a Doc AI run will wait for the write to finish before reporting the outcome. Failed fields are highlighted with a reason and the run stays editable for users to fix and resubmit, and long-running writes surface a timeout message. ## v5.276 — Aug 11, 2026 - Fixed Document Mapper failing to save records containing a date/time field, including values sent with time zone offsets. ## v5.275 — Aug 10, 2026 - New flow action: Get User License Status - check whether a collection of users holds an active CloudFiles license for a given product, returns one result per user. ## v5.274 — Aug 7, 2026 - Doc Gen widget now has a template search bar, with templates listed alphabetically. - Added a CloudFiles Minimum Access Integration permission set, scoping integration users to least-privilege access including CloudFiles event records. - Fixed User Management issues where selected users were cleared when paging the table, and the user list collapsed when the filter panel was opened. ## v5.272 — Jul 31, 2026 - Workflows in the Document AI: build multi-step document automations without code, with decision branching, loops, value assignment, and data passed from one step to the next. Workflows can be started from a Salesforce flow through the Run Workflow action, and every launch creates a Doc AI Run record so the outcome is auditable afterwards. - Workflow steps can read and write Salesforce directly: find records, resolve a record by name with exact, then fuzzy, then AI matching, create many records at once, and delete a record. Object and field pickers only offer what the running user is allowed to change. ## v5.271 — Jul 31, 2026 - Admins can turn on or off the salesforce-file-attached events that CloudFiles publishes on upload. - The account settings screen shows a Connected badge once a Client Credentials connection succeeds. ## v5.268 — Jul 21, 2026 - Revamped Document Mapper: a redesigned field-mapping experience with child-record and lookup mapping, an interactive resolution chat, and an asynchronous test-run screen to validate a mapping against multiple files before saving. - Added a Doc AI review workflow: a dedicated review record page with per-field update controls, "reviewed by" tracking, mandatory fields on child records, persistent uploaded files, and a new CloudFiles Doc AI Run custom object that logs every run. ## v5.266 — Jul 10, 2026 - Batch document signing can combine a whole batch into a single DocuSign envelope: signers get one email and sign everything in one session, and the signed documents are delivered together. - Added a document-signed error event, surfaced through Get Event Details. ## v5.265 — Jul 9, 2026 - Added support for authenticating SharePoint connections with a service principal, with a refreshed connection screen and a one-click auth link. - Added support to rename the folder directly connected to the widget. ## v5.264 — Jun 25, 2026 - Salesforce Release Management: subscribe to a release track (Rolling or Stable) for managed-package upgrades, enabled per account via feature flag. Stable-track accounts receive phased, scheduled upgrades with admin notifications: sandbox one week after release, production six weeks after sandbox, and a warning email one week before the production upgrade. ## v5.263 — Jun 24, 2026 - Added passkey support to Word add-in login, including browser-based passkey providers (1Password, Bitwarden, and similar) via a "sign in using my web browser" flow. ## v5.262 — Jun 17, 2026 - Added support for owner and group permissions on SharePoint files and folders, including setting the role field for non-Salesforce users. ## v5.261 — Jun 11, 2026 - Date formatting options in the Doc Gen Word add-in: apply format presets (e.g. MM/DD/YYYY, DD Month YYYY) to date fields directly in the template builder. - Word add-in now opens a full browser window for authentication, fixing login failures for admin users with SSO or MFA configured. - Multiple base paths can now be configured within the same drive in a single widget config. ## v5.259 — Jun 8, 2026 - Google Drive file shortcuts now support inline preview and download in the Salesforce widget and Content Library. ## v5.257 — May 29, 2026 - The resource-moved CloudFiles event is now published when a file is moved via the Salesforce widget or Content Library, in addition to moves triggered by API or flow actions. ## v5.255 — May 20, 2026 - Doc Gen Widget enhancements for Salesforce: fill template variables directly in Salesforce before generating via a user input modal. - Preview the generated document inline in Salesforce immediately after generation. - Copy generated documents to any connected CloudFiles library or to folders attached to the current Salesforce record. ## v5.254 — May 18, 2026 - DocuSign: signing order support - configure the sequence in which recipients receive the signing email. - DocuSign: Carbon Copy (CC) recipient type added - CC recipients receive a copy of the envelope without being required to sign. ## v5.251 — Apr 30, 2026 - Document Mapper: invoke Salesforce Flows from mapper fields. Extracted values from an uploaded document can be passed as inputs to a flow, and flow outputs are mapped back to Salesforce fields. ## v5.249 — Apr 23, 2026 - New flow action: Update Drive Columns - update SharePoint drive column labels and default values directly from a Salesforce flow. ## v5.248 — Apr 17, 2026 - New flow action: Create SharePoint Site Group - create site groups on a SharePoint site. - New flow action: Update Site Group Members - bulk add or remove members from SharePoint site groups by email. - Update Permissions now accepts any custom SharePoint role name (e.g. Contribute, Design) in addition to the built-in owner, read, and write roles. - Update Permissions now accepts SharePoint site group names as permission identifiers, alongside user emails. ## v5.247 — Apr 13, 2026 - Community licensing (Phase 1): Introduced the concept of Named and Unnamed experience cloud licenses. - Admins can now configure which external users are on a named license. - Users without a named license who access the widget are counted as unnamed logins. ## v5.246 — Apr 2, 2026 - Multiple S3 buckets and Azure Blob containers can now be connected to the same account using distinct prefix paths. - Enable Sync toggle added: when on, files uploaded directly to the storage bucket automatically appear in Salesforce. ## v5.243 — Mar 23, 2026 - Azure Files Share added as a new storage library type. - New flow action: Get Doc-Gen Templates - retrieve available document generation templates filtered by Salesforce object type from within a flow. ## v5.242 — Mar 13, 2026 - Dataset SOQL Support: SOQL queries can now be added to Datasets via the Datasets UI. Salesforce data is fetched on a daily or monthly refresh interval and included alongside file sources when querying the dataset. ## v5.236 — Feb 6, 2026 - Added Datasets Playground UI to create datasets, add sources, and test queries. - Improved Document Mapper error propagation to relevant fields on runtime. ## v5.235 — Feb 3, 2026 - Added prefix path support for S3/Azure storage connections. Allowing users to connect the same bucket to multiple orgs, and multiple buckets to the same org. - Fixed bug where active SFTP connection was not visible ## v5.231 — Dec 29, 2025 - Introduced "Datasets" for multi document processing and querying ## v5.230 — Dec 23, 2025 - Added support for Document Mapper Run flow action. - Expanded data residency to EU and UK regions. ## v5.229 — Dec 10, 2025 - Introduced a new error event resource-update dispatched from automations for failed resource updates. - Added error messages to the Internal Record Widget for failed uploads and failed metadata updates ## v5.228 — Dec 2, 2025 - Minor UI improvements in the widget’s Mandatory Columns form, adding 'Apply To All' button and fixing scroll behavior. - Record single variables can now filter on a collection variable using the 'IN' and 'NOT IN' operators. - Added support for multiple 'Group By' fields while creating collection variables ## v5.227 — Nov 28, 2025 - Connected App support added alongside External Client App for OAuth 2.0 connection. ## v5.225 — Nov 21, 2025 - Client Credentials Flow added for a robust Salesforce-CloudFiles connection - All document sharing settings (Branding, Link Defaults, Compliances, and Viewer Customization) can be accessed through the document sharing tab. ## v5.224 — Nov 13, 2025 - Link Defaults tab added to Document Sharing settings under Document management ## v5.223 — Nov 6, 2025 - The Allow Download toggle is now visible in the Configurations section of the Internal Record Widget. ## v5.219 — Oct 24, 2025 - Resource Detached custom event will be published when resources are disconnected using the widget or Delete Attachment flow action. ## v5.216 — Oct 14, 2025 - Introduced Document Mapper feature — allows users to dynamically extract and map data from uploaded files via AI, and then create or update Salesforce records and child records. ## v5.211 — Oct 9, 2025 - Added Email Verification toggle in “Update Link Settings” flow action. ## v5.209 — Oct 7, 2025 - Editable CloudFiles Role — Admins can change user roles from Admin → User - API Key visibility added at the CloudFiles Settings level. ## v5.208 — Oct 1, 2025 - Salesforce mobile support for CloudFiles widget, including file previews, downloads, and pagination. ## v5.207 — Sep 29, 2025 - Migrated OAuth to a packaged External Client App to comply with Salesforce Winter ’26 requirements. - Added a “Get Shared Resources” action in Salesforce for retrieving CloudFiles-shared items. - Introduced configurable log retention for CloudFiles event records. ## v5.204 — Sep 3, 2025 - Added a “Resource Updated” webhook event that triggers whenever file metadata or contents are changed in SharePoint, allowing Salesforce flows to respond automatically. ## v5.201 — Aug 22, 2025 - Introduced a global "User" variable in templates for inserting current Salesforce user info. - Enabled admin-level controls to toggle which CloudFiles events sync into Salesforce. ## v5.199 — Aug 18, 2025 - Added DocuSign “Date Signed” and “Text” fields in generated documents. - Implemented duplicate file detection in Document AI to prevent unnecessary reprocessing. - Split permissions for connect and disconnect actions, giving admins more granular control. ## v5.198 — Aug 5, 2025 - Automated DocuSign integration: generated documents are sent for signature and signed copies are automatically returned. - Document AI gained page-range processing, letting users analyze specific pages instead of entire documents. ## v5.194 — Aug 1, 2025 - Added UI to configure default AI agents at the account level, with overrides possible per document. ## v5.193 — Jul 28, 2025 - Added SharePoint file upload webhook for real-time automation when files are uploaded externally. - Expanded multi-level AI agent support — configurations now exist at account, document, and query levels. --- Related external resources (see `/llms.txt` for the same list): - [CloudFiles](https://www.cloudfiles.io): The CloudFiles product site: plans, pricing, and an overview of document management, sharing, generation, and AI across Salesforce, HubSpot, and the API. - [CloudFiles llms.txt (marketing site)](https://www.cloudfiles.io/llms.txt): The companion llms.txt published on the CloudFiles marketing site. - [CloudFiles Trust Center](https://trust.cloudfiles.io): Security, privacy, and compliance documentation for CloudFiles. - [CloudFiles on the Salesforce AppExchange](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000Gh9uFUAR): The Document Management & Sharing listing on the Salesforce AppExchange (Document Generation and Document AI ship as separate AppExchange listings). - [CloudFiles on the HubSpot Marketplace](https://ecosystem.hubspot.com/marketplace/listing/cloudfiles): The CloudFiles app listing on the HubSpot App Marketplace. --- ## Optional --- # Attachment https://help.cloudfiles.io/salesforce/attachment # Attachment Represents a relation between a Salesforce record and a file or folder. > Kind: Apex type · Updated: 2026-07-01 An Attachment represents a relation between a Salesforce record and a file or folder. It is returned by Client.createAttachments() and Client.getAttachments(), and referenced when removing a relation via Client.deleteAttachments(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | id | String | optional | CloudFiles Id of the attachment. | | resource | Resource | optional | Resource object which is attached to the record. | | objectId | String | optional | Id of the Salesforce record the resource is attached to. | --- # CloudFilesVariable https://help.cloudfiles.io/docs/apex-type-cloudfiles-variable/ # CloudFilesVariable A named document-generation variable, holding a string value or a nested collection. > Kind: Apex type · Updated: 2026-07-03 CloudFilesVariable represents a named document-generation variable. Each entry of the cloudFilesVariables field on Types.DocGenRequestInput is a CloudFilesVariable. A variable holds either a string value or a nested collection of further variables. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | key | String | optional | Variable name. | | valueString | String | optional | Value as a string. | | valueCollection | List<CloudFilesVariable> | optional | Nested collection value — a list of CloudFilesVariable entries for structured variables. | --- # ContentVersionCreated https://help.cloudfiles.io/salesforce/contentversioncreated # ContentVersionCreated Output payload for the content-version-created platform event. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing the output that Platform Events and the Platform Events Apex Handler return for the content-version-created platform event type. Retrieve it via Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | ParentId | String | optional | Id of the parent record the content version was created under. | | ContentVersionId | String | optional | Id of the created ContentVersion record. | | FileName | String | optional | Name of the created file. | | File | Resource | optional | The copied file as a Resource. | --- # ContentVersionCreatedBatch https://help.cloudfiles.io/salesforce/contentversioncreatedbatch # ContentVersionCreatedBatch Output type representing a batch of content versions created for the content-version-created-batch platform event. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents an output that Platform Events and the Platform Events Apex handler return for the content-version-created-batch platform event type. It is surfaced when you fetch event details via Client.getEventDetails(). Each batch groups the created content versions under a single parent, exposing both the full ContentVersionCreated records and their bare ids. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | ParentId | String | optional | Id of the parent record the content versions were created against. | | ContentVersionsCreated | List<ContentVersionCreated> | optional | The content versions created in this batch, as ContentVersionCreated records. | | ContentVersionIds | List<String> | optional | The ids of the content versions created in this batch. | --- # CreateContentVersionFlowInput https://help.cloudfiles.io/docs/apex-type-create-content-version-flow-input/ # CreateContentVersionFlowInput Describes one external-storage file to include in a content-version batch. > Kind: Apex type · Updated: 2026-07-03 CreateContentVersionFlowInput describes a single external-storage file to create a content version for. Each entry of the files field on Types.CreateContentVersionBatchPayload is a CreateContentVersionFlowInput, consumed by Client.createContentVersionBatch(). ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | library | String | required | The related files library — one of cloudfiles, google, sharepoint, onedrive, box, dropbox. | | driveId | String | required | The drive where the file is located. | | id | String | required | The resource Id of the file for which a content version is created. | --- # Dataroom (Apex Type) https://help.cloudfiles.io/salesforce/dataroom # Dataroom Output type representing a dataroom returned when creating datarooms. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents an output that the Client.createDatarooms() method returns. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | id | String | optional | The Id of the created dataroom. | --- # DatasetCreated https://help.cloudfiles.io/docs/apex-type-dataset-created/ # DatasetCreated Event payload returned for the dataset-created platform event type. > Kind: Apex type · Updated: 2026-07-03 This custom Apex type represents the output that Platform Events and the Platform Events Apex handler return for the dataset-created platform event type. It is exposed on the Event type and surfaced by Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | datasetId | String | optional | Id of the created dataset. | | context | String | optional | Context attribute describing the source of the dataset creation. | --- # DatasetCreatedError https://help.cloudfiles.io/docs/apex-type-dataset-created-error/ # DatasetCreatedError Output type describing a failure when creating a dataset. > Kind: Apex type · Updated: 2026-07-03 Custom Apex type representing an error output returned by the Client.getEventDetails() method's ErrorEvent handling. It carries the dataset name and the resources for a dataset that failed to be created. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | name | String | optional | Name of the dataset that failed to be created. | | resources | List<Resource> | optional | The resources that were to be included in the dataset. | | context | String | optional | Context attribute describing the source of the dataset creation. | --- # DocGenParams https://help.cloudfiles.io/docs/apex-type-docgen-params/ # DocGenParams Optional PDF security, retention, and preview settings for document generation. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type that carries optional PDF security, retention, and preview-viewer settings for a document generation request. Pass it to Generate Document or Generate Document (Sync) to protect or auto-expire the generated file. All fields are optional; construct with the default constructor and set only the properties you need. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | PdfViewPassword | String | optional | Password required to open and view the generated PDF. | | PdfOwnerPassword | String | optional | Owner (editor) password for the generated PDF. | | LockPdf | Boolean | optional | Disable PDF editing when true. | | AllowPdfPrinting | Boolean | optional | Enable PDF printing. Only applicable when LockPdf is true or PdfOwnerPassword is provided. | | AllowFillingPdfFormFields | Boolean | optional | Enable filling PDF form fields. Only applicable when LockPdf is true or PdfOwnerPassword is provided. | | Retention | Integer | optional | If provided, the document will be deleted after the specified number of minutes. | | AllowDownloadInPreview | Boolean | optional | Controls the download button in the preview viewer. Does not affect the API-level downloadUrl. | | AllowPrintInPreview | Boolean | optional | Controls the print button in the preview viewer. | ## Example ```apex cldfs.DocGenParams dcp = new cldfs.DocGenParams(); dcp.PdfViewPassword = 'admin'; dcp.PdfOwnerPassword = 'superadmin'; dcp.LockPdf = True; dcp.AllowPdfPrinting = True; dcp.AllowFillingPdfFormFields = True; dcp.Retention = 5; ``` --- # DocumentGenerated https://help.cloudfiles.io/salesforce/documentgenerated # DocumentGenerated Output payload for the document-generated platform event, carrying the created file's identifiers and Resource. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the output that Platform Events and the Platform Events Apex Handler methods return for the document-generated platform event type. It exposes the parent record, the generated ContentVersion, the file name, and the resulting Resource. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | ParentId | String | optional | Id of the record the generated document is attached to. | | ContentVersionId | String | optional | Id of the ContentVersion created for the generated document. | | Name | String | optional | Name of the generated document. | | file | Resource | optional | The generated document as a Resource. | --- # DocumentGeneratedError https://help.cloudfiles.io/docs/apex-type-document-generated-error/ # DocumentGeneratedError Output type describing a failed document generation. > Kind: Apex type · Updated: 2026-07-03 Custom Apex type representing an error output returned by the Client.getEventDetails() method's ErrorEvent handling. It identifies the template and record for a document generation that failed. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | TemplateId | String | optional | Id of the template the document was generated from. | | Context | String | optional | Context attribute describing the source of the generation. | | RecordId | String | optional | Salesforce Record Id associated with the generation. | --- # DocumentMapperRun https://help.cloudfiles.io/docs/apex-type-document-mapper-run/ # DocumentMapperRun Event payload returned for the document-mapper-run platform event type. > Kind: Apex type · Updated: 2026-07-03 This custom Apex type represents the output that Platform Events and the Platform Events Apex handler return for the document-mapper-run platform event type. It is exposed on the Event type and surfaced by Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | FileId | String | optional | Id of the file the document mapper ran on. | | VersionNumber | Integer | optional | Version number of the file the mapper processed. | | ConfigId | String | optional | Id of the document mapper configuration that ran. | | RecordId | String | optional | Salesforce Record Id associated with the run. | | Context | String | optional | Context attribute describing the source of the run. | --- # DocumentMapperRunError https://help.cloudfiles.io/docs/apex-type-document-mapper-run-error/ # DocumentMapperRunError Output type describing a failed document mapper run. > Kind: Apex type · Updated: 2026-07-03 Custom Apex type representing an error output returned by the Client.getEventDetails() method's ErrorEvent handling. It identifies the mapper configuration, file, and record for a document mapper run that failed. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | ConfigId | String | optional | Id of the document mapper configuration that failed to run. | | FileId | String | optional | Id of the file the mapper ran on. | | VersionNumber | Integer | optional | Version number of the file the mapper processed. | | RecordId | String | optional | Salesforce Record Id associated with the run. | | Context | String | optional | Context attribute describing the source of the run. | --- # DocumentProcessed https://help.cloudfiles.io/salesforce/documentprocessed # DocumentProcessed Output payload returned for the document-processed platform event. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing the output that Platform Events and the Platform Events Apex Handler methods return for the document-processed platform event type. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Context | String | optional | Context associated with the processed document event. | | ProcessedDocumentId | String | optional | Identifier of the processed document. | | File | Resource | optional | Details of the processed file. See Resource. | --- # DocumentProcessedError https://help.cloudfiles.io/salesforce/documentprocessederror # DocumentProcessedError Output payload describing a document that failed processing, surfaced on an ErrorEvent. > Kind: Apex type · Updated: 2026-07-01 DocumentProcessedError represents an output carried by an ErrorEvent when a document fails to process. You resolve it from Apex via Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Context | String | optional | Context describing the processing error. | | File | Resource | optional | The input Resource that failed to process. | --- # DocumentSigned https://help.cloudfiles.io/docs/apex-type-document-signed/ # DocumentSigned Event payload returned for the document-signed platform event type. > Kind: Apex type · Updated: 2026-07-03 This custom Apex type represents the output that Platform Events and the Platform Events Apex handler return for the document-signed platform event type. It is exposed on the Event type and surfaced by Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | ParentId | String | optional | Id of the parent record or folder the signed document belongs to. | | ContentVersionId | String | optional | Id of the ContentVersion created for the signed document. | | Name | String | optional | Name of the signed document. | | file | Resource | optional | The new signed file. | --- # DocumentSplit https://help.cloudfiles.io/salesforce/documentsplit # DocumentSplit Output payload returned for the document-split platform event. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing the output that Platform Events and the Platform Events Apex handler return for the document-split platform event type. Produced when a document is split — see Client.splitDocument() — and surfaced through Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | RecordId | String | optional | Identifier of the source record the split was performed against. | | Files | List<Resource> | optional | The resulting split files as Resource records. | | ContentVersionIds | List<String> | optional | ContentVersion Ids of the resulting split files. | | Context | String | optional | Context string passed through from the originating operation. | --- # Drive https://help.cloudfiles.io/salesforce/drive # Drive Output type representing a created SharePoint drive. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the output of the Client.createSharePointDrive() method. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | id | String | optional | The Id of the created drive. | | externalUrl | String | optional | The external URL of the created drive. | --- # DriveColumn https://help.cloudfiles.io/docs/apex-type-drive-column/ # DriveColumn Describes a site column to attach to a newly created SharePoint drive. > Kind: Apex type · Updated: 2026-07-03 DriveColumn describes a site column to attach to a newly created drive. Each entry of the siteColumns field on Types.CreateDriveInput is a DriveColumn, consumed by Client.createDrive(). ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | apiName | String | optional | API name of the column. | | label | String | optional | Display label of the column. | | defaultValue | String | optional | Default value for the column. | | addToDefaultView | Boolean | optional | Whether the column is added to the drive’s default view. | --- # ErrorEvent https://help.cloudfiles.io/salesforce/errorevent # ErrorEvent Output payload returned for the error-event platform event type. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the output that Platform Events and the Platform Events Apex Handler methods return for the error-event platform event type. Exactly one of the nested error fields is populated, depending on which operation raised the error. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | ErrorEventType | String | optional | The type of error event that was raised. | | ErrorReason | String | optional | A human-readable description of why the error occurred. | | SalesforceFileCopiedError | SalesforceFileCopiedError | optional | Populated when a Salesforce file copy operation failed. See SalesforceFileCopiedError. | | DocumentProcessedError | DocumentProcessedError | optional | Populated when document processing failed. See DocumentProcessedError. | | ResourceUpdateError | ResourceUpdateError | optional | Populated when a resource update failed. See ResourceUpdateError. | | DocumentMapperRunError | DocumentMapperRunError | optional | Populated when a document mapper run failed. See DocumentMapperRunError. | | DatasetCreatedError | DatasetCreatedError | optional | Populated when dataset creation failed. See DatasetCreatedError. | | ResourceMovedError | ResourceMovedError | optional | Populated when a resource move operation failed. See ResourceMovedError. | | DocumentGeneratedError | DocumentGeneratedError | optional | Populated when document generation failed. See DocumentGeneratedError. | | SiteGroupMembersUpdatedError | SiteGroupMembersUpdatedError | optional | Populated when a site group members update failed. See SiteGroupMembersUpdatedError. | --- # Event https://help.cloudfiles.io/salesforce/event # Event Container type holding the type-specific payload for any CloudFiles event. > Kind: Apex type · Updated: 2026-07-01 Event is a container type for all types of CloudFiles events. It is returned as the output of Client.getEventDetails(). Read the Type field to discover which kind of event fired, then use the matching payload field for the details. Payload fields are inline types such as FileUpload, SalesforceFilesAttached, SalesforceFileCopied, FolderCreated, ResourceUpdated, and ErrorEvent. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Type | String | optional | Type of the event. Example — file-uploaded. | | FileUploaded | FileUpload | optional | Event details when the type is File Uploaded. | | FileReplaced | FileReplace | optional | Event details when the type is File Replaced. | | SalesforceFiles | SalesforceFilesAttached | optional | Event details when the type is Salesforce File Attached. | | SalesforceFileCopied | SalesforceFileCopied | optional | Event details when the type is Salesforce File Copied. | | FolderCreated | FolderCreated | optional | Event details when the type is Folder Created. | | ResourceUpdated | ResourceUpdated | optional | Event details when the type is Resource Updated. | | ContentVersionCreated | ContentVersionCreated | optional | Event details when a Salesforce ContentVersion is created. | | ContentVersionCreatedBatch | ContentVersionCreatedBatch | optional | Event details when Salesforce ContentVersions are created in a batch. | | FileReceived | FileReceived | optional | Event details when a file is received. | | ResourceAttached | ResourceAttached | optional | Event details when a resource is attached. | | ResourceDetached | ResourceDetached | optional | Event details when a resource is detached. | | DocumentGenerated | DocumentGenerated | optional | Event details when a document is generated. | | DocumentSigned | DocumentSigned | optional | Event details when a document is signed. | | ResourceCloned | ResourceCloned | optional | Event details when a resource is cloned. | | FileViewed | FileViewed | optional | Event details when a file is viewed. | | DocumentProcessed | DocumentProcessed | optional | Event details when a document is processed. | | DocumentMapperRun | DocumentMapperRun | optional | Event details when a document mapper runs. | | DocumentSplit | DocumentSplit | optional | Event details when a document is split. | | ResourceDeleted | ResourceDeleted | optional | Event details when a resource is deleted. | | ResourceMoved | ResourceMoved | optional | Event details when a resource is moved. | | DatasetCreated | DatasetCreated | optional | Event details when a dataset is created. | | ErrorEvent | ErrorEvent | optional | Event details when the event represents an error. | --- # FileReceived https://help.cloudfiles.io/salesforce/filereceived # FileReceived Output payload carried by the file-received platform event. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing the output that Platform Events and the Platform Events Apex Handler return for the file-received platform event type. It is surfaced on the Event payload returned by Client.getEventDetails(). It exposes the following fields. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | id | String | optional | Identifier of the received file resource. | | name | String | optional | Name of the received file. | | fileRequestId | String | optional | Identifier of the file request that produced this upload. | | fileRequestName | String | optional | Name of the file request that produced this upload. | | destinationResourceId | String | optional | Resource ID at the destination. | | destinationDriveId | String | optional | Drive ID of the destination. | | destinationLibrary | String | optional | Storage library of the destination. | | linkId | String | optional | Identifier of the link used for the upload. | | linkHash | String | optional | Hash of the link used for the upload. | | linkUrl | String | optional | URL of the link used for the upload. (The Archbee source lists this field as linkUr, an apparent typo; the Apex class defines it as linkUrl.) | | uploaderEmail | String | optional | Email address of the person who uploaded the file. | | uploadedAt | Datetime | optional | Timestamp of when the file was uploaded. | --- # FileReplace https://help.cloudfiles.io/salesforce/filereplace # FileReplace Output payload returned for the file-replaced platform event type. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the output that Platform Events and the Platform Events Apex Handler return for the file-replaced platform event type. It is populated by Client.getEventDetails() when deserializing a file-replaced event payload. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Id | String | optional | Identifier of the replaced file. | | DriveId | String | optional | Identifier of the drive containing the file. | | Library | String | optional | Storage library the file belongs to. | | RecordId | String | optional | Salesforce record the file is associated with. | | UserId | String | optional | Salesforce user who triggered the replacement. | | Name | String | optional | File name. | | ParentFolderId | String | optional | Identifier of the parent folder containing the file. | --- # FileRequest https://help.cloudfiles.io/salesforce/filerequest # FileRequest Output type representing a file request returned from Apex. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing a file request. Returned by Client.createFileRequests(), which produces one FileRequest per input. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | id | String | optional | Identifier of the created file request. | --- # FileUpload https://help.cloudfiles.io/salesforce/fileupload # FileUpload Payload of the file-uploaded platform event, describing an uploaded file and where it landed. > Kind: Apex type · Updated: 2026-07-01 FileUpload is the output that Platform Events and the Platform Events Apex Handler return for the file-uploaded platform event type. Resolve it from an event via Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Id | String | optional | CloudFiles resource id of the uploaded file. | | DriveId | String | optional | Id of the drive the file was uploaded to. | | Library | String | optional | Storage library the file belongs to. | | RecordId | String | optional | Salesforce record id associated with the upload. | | UserId | String | optional | Salesforce user id that performed the upload. | | Name | String | optional | File name of the uploaded file. | | ParentFolderId | String | optional | Id of the folder the file was uploaded into. | --- # FileViewed https://help.cloudfiles.io/salesforce/fileviewed # FileViewed Output payload carried by the file-viewed platform event. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing the output that Platform Events and the Platform Events Apex Handler return for the file-viewed platform event type. It is surfaced on the Event payload returned by Client.getEventDetails(). It exposes the following fields. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Resource | Resource | optional | The Resource that was viewed. | | Link | Link | optional | The Link through which the resource was viewed. | | RecordId | String | optional | Salesforce Record Id. | | TimeSpent | Double | optional | Time Spent (In Seconds). | | Email | String | optional | Viewed By. | | downloaded | Boolean | optional | Whether the resource was downloaded. | --- # FolderCreated https://help.cloudfiles.io/salesforce/foldercreated # FolderCreated Event payload for the folder-created platform event. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing the output that Platform Events and the Platform Events Apex handler return for the folder-created platform event type. Resolve it from Apex with Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Id | String | optional | Identifier of the created folder. | | DriveId | String | optional | Identifier of the drive the folder was created in. | | Library | String | optional | Storage library the folder belongs to. | | RecordId | String | optional | Salesforce Record Id. | | Name | String | optional | Name of the created folder. | --- # GeneratedDocument https://help.cloudfiles.io/salesforce/generateddocument # GeneratedDocument Output type describing a document produced by a sync doc-gen or merge call. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents an output document. It is returned by both Client.mergeDocumentsSync() and Client.generateDocumentSync(), one entry per generated file. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | name | String | optional | Name of the generated document. | | downloadUrl | String | optional | URL to download the generated document. | | contentVersionId | String | optional | Id of the Salesforce ContentVersion for the generated document, when stored as a Salesforce File. | | file | Resource | optional | The generated document as a Resource. | | previewUrl | String | optional | URL to preview the generated document. | ## Constructors ```apex global GeneratedDocument(String name, String downloadUrl, Resource file) ``` ```apex global GeneratedDocument( String name, String downloadUrl, String contentVersionId ) ``` --- # Link https://help.cloudfiles.io/salesforce/link # Link A shareable external link to a file, folder, or dataroom. > Kind: Apex type · Updated: 2026-07-01 CloudFiles links are a way to share files, folders & datarooms externally (outside Salesforce). CloudFiles links provide multiple security settings, a branded viewer (whitelabelling supported), and give engagement analytics. Returned by Client.createLinks(). An example of a CloudFiles file link is https://docs.cloudfiles.io/V1LZJ2rdSRW. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | id | String | optional | CloudFiles id of the link. | | url | String | optional | A shareable url of the link. | --- # PreviewParams https://help.cloudfiles.io/docs/apex-type-preview-params/ # PreviewParams Options controlling the behavior of a generated preview URL. > Kind: Apex type · Updated: 2026-07-03 PreviewParams carries options that control the behavior of a preview URL. Pass it as the params argument of Client.getPreviewUrl(). ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | allowDownload | Boolean | optional | Whether the file can be downloaded from the preview. | --- # Resource https://help.cloudfiles.io/salesforce/resource # Resource Represents a file or folder in external storage. > Kind: Apex type · Updated: 2026-07-01 A Resource represents a file or a folder in external storage. It is returned by folder and file operations such as Client.createFolders(), which yields a List Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the output that Platform Events and the Platform Events Apex handler return for the resource-attached platform event type. It is exposed on the Event type and surfaced by Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Resource | Resource | optional | The attached resource. | | RecordId | String | optional | Salesforce Record Id. | | ObjectType | String | optional | Object type. | --- # ResourceCloned https://help.cloudfiles.io/salesforce/resourcecloned # ResourceCloned Payload returned for the resource-cloned platform event. > Kind: Apex type · Updated: 2026-07-01 Output payload that Platform Events and the Platform Events Apex Handler methods return for the resource-cloned platform event type. Each instance carries the newly cloned resource, the source resource it was cloned from, and the associated Salesforce record. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Resource | Resource | optional | New Resource. | | InputResource | Resource | optional | Inputed Resource. | | RecordId | String | optional | Salesforce Record Id. | --- # ResourceDeleted https://help.cloudfiles.io/salesforce/resourcedeleted # ResourceDeleted Output payload for the resource-deleted platform event. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing the output that Platform Events and the Platform Events Apex Handler return for the resource-deleted platform event type. Retrieve it via Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Resource | Resource | optional | The deleted resource as a Resource. | | RecordId | String | optional | Salesforce Record Id. | | UserId | String | optional | Salesforce User Id. | --- # ResourceDetached https://help.cloudfiles.io/docs/apex-type-resource-detached/ # ResourceDetached Event payload returned for the resource-detached platform event type. > Kind: Apex type · Updated: 2026-07-03 This custom Apex type represents the output that Platform Events and the Platform Events Apex handler return for the resource-detached platform event type. It is exposed on the Event type and surfaced by Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Resource | Resource | optional | The detached resource. | | RecordId | String | optional | Salesforce Record Id. | | ObjectType | String | optional | Object type. | --- # ResourceMoved https://help.cloudfiles.io/docs/apex-type-resource-moved/ # ResourceMoved Event payload returned for the resource-moved platform event type. > Kind: Apex type · Updated: 2026-07-03 This custom Apex type represents the output that Platform Events and the Platform Events Apex handler return for the resource-moved platform event type. It is exposed on the Event type and surfaced by Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Id | String | optional | Id of the moved resource. | | Type | String | optional | Type of the moved resource (file or folder). | | SourceParentFolderId | String | optional | Id of the folder the resource was moved from. | | DestinationId | String | optional | Id of the folder the resource was moved to. | | Library | String | optional | The related files library such as cloudfiles, google, sharepoint etc. | | DriveId | String | optional | Id of the drive the resource belongs to. | --- # ResourceMovedError https://help.cloudfiles.io/docs/apex-type-resource-moved-error/ # ResourceMovedError Output type describing a failure when moving a resource. > Kind: Apex type · Updated: 2026-07-03 Custom Apex type representing an error output returned by the Client.getEventDetails() method's ErrorEvent handling. It carries the resource that failed to move and its intended destination. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Resource | Resource | optional | The resource that failed to move. | | DestinationId | String | optional | Id of the folder the resource was to be moved to. | --- # ResourceUpdated https://help.cloudfiles.io/salesforce/resourceupdated # ResourceUpdated Event payload describing a resource that was updated, including which fields changed. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing the output that Platform Events and the Platform Events Apex handler return for the resource-updated platform event type. It is exposed on the Event wrapper and surfaced by Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Resource | Resource | optional | The resource that was updated. | | RecordId | String | optional | Salesforce Record Id. | | UserId | String | optional | Salesforce User Id. | | UpdatedFields | List<String> | optional | Names of the fields that were updated. | --- # ResourceUpdateError https://help.cloudfiles.io/docs/apex-type-resource-update-error/ # ResourceUpdateError Output type describing a failure when updating a resource. > Kind: Apex type · Updated: 2026-07-03 Custom Apex type representing an error output returned by the Client.getEventDetails() method's ErrorEvent handling. It carries the resource whose update failed and the payload that failed to apply. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | Resource | Resource | optional | The resource whose update failed. | | Payload | String | optional | The update payload that failed to apply. | --- # ResourceList https://help.cloudfiles.io/docs/apex-type-resource-list/ # ResourceList Represents the contents of a folder, with pagination support coming soon. > Kind: Apex type · Updated: 2026-07-01 ResourceList represents the contents of a folder, with pagination support coming soon. It is returned by Client.getFolderContents() and Client.searchByProperty(), which each yield one ResourceList per input. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | resources | List<Resource> | optional | List of Resource objects contained in the folder. | --- # SalesforceFilesAttached https://help.cloudfiles.io/salesforce/salesforcefilesattached # SalesforceFilesAttached Output payload carried by the salesforce-file-attached platform event. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing the output that Platform Events and the Platform Events Apex Handler return for the salesforce-file-attached platform event type. It is surfaced on the Event payload returned by Client.getEventDetails(). It exposes the following fields. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | ParentId | String | optional | Id of the record the files were attached to. | | ParentType | String | optional | Object type (API name) of the parent record. | | ContentDocumentIds | List<Id> | optional | Ids of the ContentDocument records attached. | | Files | List<SalesforceFile> | optional | The attached files. SalesforceFile is a custom Apex type; see the supported constructor below. | ## Constructors ```apex SalesforceFile( Id fileId, //contentDocumentId String Name, String extension, Integer fileSize ) ``` --- # SalesforceFileCopied https://help.cloudfiles.io/salesforce/salesforcefilecopied # SalesforceFileCopied Output payload for the salesforce-file-copied platform event. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the output that Platform Events and the Platform Events Apex Handler methods return for the salesforce-file-copied platform event type. It is surfaced via Client.getEventDetails(). ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | ParentId | String | optional | Id of the parent record the file was copied to. | | ContentVersionId | String | optional | Id of the ContentVersion for the copied Salesforce file. | | Resource | Resource | optional | The Resource that was copied. | --- # SalesforceFileCopiedError https://help.cloudfiles.io/salesforce/salesforcefilecopiederror # SalesforceFileCopiedError Output type describing a failure when copying a Salesforce file. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing an error output returned by the Client.getEventDetails() method's ErrorEvent handling. It carries the identifiers and destination for a Salesforce file that failed to copy. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | RecordId | String | optional | Id of the Salesforce record associated with the copy operation. | | ContentVersionId | String | optional | Id of the ContentVersion for the file that failed to copy. | | Destination | Resource | optional | The intended destination resource for the copy. | --- # SalesforceFile https://help.cloudfiles.io/docs/apex-type-salesforce-file/ # SalesforceFile Represents a Salesforce file (ContentDocument) by Id, name, extension, and size. > Kind: Apex type · Updated: 2026-07-01 SalesforceFile represents a Salesforce file, i.e. a ContentDocument. It appears in event payloads such as the SalesforceFilesAttached event, whose Files field is a List Kind: Apex type · Updated: 2026-07-01 Represents the SharePoint site returned by Client.createSharePointSite(). It carries the identifiers and URL of the newly provisioned site along with its primary document library drive. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | id | String | optional | The SharePoint site id. | | url | String | optional | The SharePoint site URL. | | name | String | optional | The SharePoint site name. | | driveId | String | optional | The id of the site's primary drive (document library). | --- # SiteGroupMembersUpdatedError https://help.cloudfiles.io/docs/apex-type-site-group-members-updated-error/ # SiteGroupMembersUpdatedError Output type describing a failure when updating SharePoint site group members. > Kind: Apex type · Updated: 2026-07-03 Custom Apex type representing an error output returned by the Client.getEventDetails() method's ErrorEvent handling. It identifies the site, groups, and members for a site-group membership update that failed. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | SiteId | String | optional | Id of the SharePoint site. | | GroupNames | List<String> | optional | Names of the site groups whose membership update failed. | | Emails | List<String> | optional | Emails of the members being added or removed. | | Remove | Boolean | optional | Whether the members were being removed (true) or added (false). | | Context | String | optional | Context attribute describing the source of the update. | --- # UpdateLicensesFlowOutput https://help.cloudfiles.io/salesforce/updatelicensesflowoutput # UpdateLicensesFlowOutput Output type returned by the assign and unassign user license methods, reporting license counts. > Kind: Apex type · Updated: 2026-07-01 UpdateLicensesFlowOutput is the custom Apex type returned by Client.assignUserLicenses() and Client.unassignUserLicenses(). One entry is returned per input, reporting the license counts after the operation. ## Fields ### Output fields | Parameter | Type | Required | Description | |---|---|---|---| | totalLicenses | Integer | optional | The total number of licenses available for the product. | | remainingLicenses | Integer | optional | The number of licenses remaining after the assign or unassign operation. | --- # Types.UpdateLicensesInput https://help.cloudfiles.io/salesforce/typesupdatelicensesinput # Types.UpdateLicensesInput Input type describing the users and product for a license assignment or unassignment. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the input for the Client.assignUserLicenses() and Client.unassignUserLicenses() methods. It pairs a list of Salesforce User IDs with the product whose license should be assigned or unassigned. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | ids | List<Id> | required | Provide a list of Salesforce User IDs. | | productName | String | required | Specify the product for which you want to assign a license. Valid values include: document-management, document-generation, and document-ai. | ## Constructors ```apex global UpdateLicensesInput( List ids, String productName ) ``` --- # Types.CreateDriveInput https://help.cloudfiles.io/salesforce/typescreatedriveinput # Types.CreateDriveInput Input type describing the SharePoint drive to create. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the input for the Client.createSharePointDrive() method. It describes the new drive to create and the SharePoint site to create it in. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | name | String | required | Provide a name to create the new drive. | | siteId | String | required | Provide the SiteId of the site where you want to create the new drive. | | disableInheritedPermissions | Boolean | optional | When true, the new drive does not inherit permissions from its parent site. | | siteColumns | List<DriveColumn> | optional | Site columns to attach to the new drive. Each entry is a DriveColumn. | | contentTypes | List<String> | optional | Content types to enable on the new drive. | ## Constructors ```apex global CreateDriveInput( String name, String siteId ) ``` ```apex global CreateDriveInput( String name, String siteId, Boolean disableInheritedPermissions ) ``` ```apex global CreateDriveInput( String name, String siteId, Boolean disableInheritedPermissions, List siteColumns ) ``` ```apex global CreateDriveInput( String name, String siteId, Boolean disableInheritedPermissions, List siteColumns, List contentTypes ) ``` --- # Types.MergeDocumentsRequestInput https://help.cloudfiles.io/salesforce/typesmergedocumentsrequestinput # Types.MergeDocumentsRequestInput Input describing the documents to merge, the output file name, and the destination. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the input for the Merge Documents (Sync) method. It bundles the source Resource documents to merge, the name of the merged output file, and the destination Resource where the result is saved. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | resources | List<Resource> | required | A collection of Apex-defined variables pointing to the documents in external storage that will be merged. | | fileName | String | required | The name of the merged output file, either static or dynamically generated. | | destination | Resource | required | The external storage location metadata (library, driveId, and folder/location Id) where the merged file will be saved. | ## Constructors ```apex global MergeDocumentsRequestInput( List resources, String fileName, Resource destination ) ``` --- # Types.SplitDocumentPayload https://help.cloudfiles.io/salesforce/typessplitdocumentpayload # Types.SplitDocumentPayload Input type describing a file to split and where the resulting parts land. > Kind: Apex type · Updated: 2026-07-01 Custom Apex type representing one input entry for Client.splitDocument(). Each payload identifies the source file, the drive and storage library it lives in, and the Resource destination where the split parts are written, with optional AI instructions and a context identifier for traceability. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | fileId | String | required | The unique Resource Id of the file in the external storage that will be processed. | | driveId | String | required | The Id of the connected drive where the file is located (required for Google Drive and SharePoint). | | library | String | required | The external storage type, e.g., sharepoint, google, azure, onedrive, dropbox, box, or cloudfiles (AWS S3). | | destination | Resource | required | The target external location where the splitted file will be stored (includes library, driveId, and folder/location Id). | | instructions | String | optional | Optional AI guidance for processing the document, improving accuracy for non-standard formats. | | context | String | optional | Optional identifier to track the source or purpose of the action, enabling event traceability. | ## Constructors ```apex global SplitDocumentPayload( String fileId, String driveId, String library, Resource destination, String context ) ``` ```apex global SplitDocumentPayload( String fileId, String driveId, String library, Resource destination, String instructions, String context ) ``` --- # Types.UpdateLinkSettingsInput https://help.cloudfiles.io/salesforce/typesupdatelinksettingsinput # Types.UpdateLinkSettingsInput Input type describing the settings to apply when updating a CloudFiles Link. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the input for the Client.updateLinkSettings() method. Populate the fields for the settings you wish to change on an existing CloudFiles Link. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | id | String | required | Input the CloudFiles Link Id whose settings are to be updated. | | isActive | Boolean | optional | Set value to 'False' to disable the CloudFiles Link. | | allowDownloading | Boolean | optional | Set value to 'True' to allow downloading. | | requirePassword | Boolean | optional | Set value to 'True' if you wish to use to protect the CloudFiles link. | | password | String | optional | Enter the password you wish to use to protect the CloudFiles link. | | allowedEmails | List<String> | optional | Input a list of Email Ids you wish to grant access to the link. | | allowedDomains | List<String> | optional | Input a list of Domains you wish to grant access to the link. | | enableEmailVerification | Boolean | optional | Set value to 'True' to require recipients to verify their email address before accessing the link. | ## Constructors ```apex global UpdateLinkSettingsInput(String id) ``` ```apex global UpdateLinkSettingsInput( String id, Boolean isActive, Boolean allowDownloading, Boolean requirePassword, String password, List allowedEmails, List allowedDomains, Boolean enableEmailVerification ) ``` --- # Types.UnshareResourceInput https://help.cloudfiles.io/salesforce/typesunshareresourceinput # Types.UnshareResourceInput Input describing a file or folder to unshare from a Salesforce record. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the input for the Remove from Community method. It identifies the resource to unshare and the Salesforce record it is being unshared from. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | resourceId | String | required | Input the Resource Id i.e. unique identifier of the file or folder to be unshared. | | resourceType | String | required | Indicates whether the target is a file or folder. | | parentId | String | required | The ID of the Salesforce record from which the resource will be unshared. | ## Constructors ```apex global UnshareResourceInput( String resourceId, String resourceType, String parentId ) ``` --- # Types.ShareResourceInput https://help.cloudfiles.io/salesforce/typesshareresourceinput # Types.ShareResourceInput Input describing a file or folder to share and its recipient. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the input for the Share With Community User method. It identifies the file or folder being shared, the recipient, and the drive the resource lives in. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | resourceId | String | required | The Resource Id, i.e. unique identifier of the file or folder being shared. This ID is used to locate and process the resource within the specified library and drive. | | resourceType | String | required | Specifies whether the target is a file or folder. | | recordId | String | required | Specifies the target recipient of the shared resource. This can be: (1) a Salesforce Record ID to associate the file or folder with a record (such as an Account or Opportunity) and share it with all the users having record access; (2) a User ID to share the resource directly with an individual user; or (3) a Group ID to share with a predefined group of users in Salesforce. | | driveId | String | required | Indicates the ID of the drive in which the target file or folder resides. This is essential for external storage systems like Google Drive or SharePoint, where files are stored across multiple drives. | ## Constructors ```apex global ShareResourceInput( String resourceId, String resourceType, String recordId, String driveId ) ``` --- # Types.UpdateResourceInput https://help.cloudfiles.io/salesforce/typesupdateresourceinput # Types.UpdateResourceInput Input describing a SharePoint resource and the column values to update on it. > Kind: Apex type · Updated: 2026-07-01 Specifies a SharePoint Resource (file or folder) and the column values to set on it. Consumed by Client.setResourceProperty() and Client.updateResources() — both accept the same input shape. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | resourceToUpdate | Resource | required | The Resource parameter is used to specify the SharePoint Resource (File or Folder) whose column values are to be updated. | | payload | Map<String, String> | required | A map containing the column names as keys and their corresponding new values as a value. | ## Constructors ```apex global UpdateResourceInput( Resource resourceToUpdate, Map payload ) ``` --- # Types.CreateContentVersionPayload https://help.cloudfiles.io/salesforce/typescreatecontentversionpayload # Types.CreateContentVersionPayload Describes one external-storage file to materialize as a Salesforce File. > Kind: Apex type · Updated: 2026-07-01 Types.CreateContentVersionPayload describes a single external-storage file that should be materialized as a Salesforce File (ContentVersion). Pass a List files = new List{ new cldfs.Types.CreateContentVersionPayload( '01KEHAKUUSU3E5OUXBBJGLYTD3IZU4BCRV', //fileId 'b!nJBtPq_z5UeJtFrj_f24XEQqlPUD8vtFsg7GBcrXJepiUn9bkb_7QbDPtqHVD-cP', //driveId 'sharepoint', //Library '{"recordId": "00QdL000009q8txUAA"}' //recordId Json ) }; cldfs.Client.createContentVersion(files, 'integrationUser'); ``` --- # Types.CreateMicrosoftTeamInput https://help.cloudfiles.io/salesforce/typescreatemicrosoftteaminput # Types.CreateMicrosoftTeamInput Input type describing the Microsoft Team to create. > Kind: Apex type · Updated: 2026-07-01 This custom Apex type represents the input for the Client.createMicrosoftTeam() method. It describes the new Microsoft Team to create. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | name | String | required | The name of the Microsoft Team. Example: "Account XYZ Team." | | description | String | required | A brief description of the Microsoft Team being created. Example: "Team for managing all activities related to Account XYZ." | | templateId | String | required | The Id of an existing Microsoft Team to use as a template for creating the new Team. If provided, the new Team will inherit the structure and settings of the specified Team. | | teamId | String | required | The Id of a predefined Microsoft Team template to use. If provided, the new Team will follow the structure defined by the template. | ## Constructors ```apex global CreateMicrosoftTeamInput( String name, String description, String templateId, String teamId ) { this.name = name; this.description = description; this.templateId = templateId; this.teamId = teamId; } ``` --- # Types.CreateSharePointSiteInput https://help.cloudfiles.io/salesforce/typescreatesharepointsiteinput # Types.CreateSharePointSiteInput Input describing a SharePoint site to provision from Apex. > Kind: Apex type · Updated: 2026-07-01 One entry per SharePoint site to create. Passed to Client.createSharePointSite(), which returns a List Kind: Apex type · Updated: 2026-07-01 Describes a single metadata property/value pair to match against external storage. Consumed by Client.searchByResourceMetadata(). ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | property | String | required | String property of SharePoint column to search against. | | value | String | required | String value to search for. | | driveId | String | required | Drive Id in external storage. Only applicable for SharePoint & Google Drive. You can get this value from the Content Library. | | payload | Map<String, String> | optional | Property/value pairs to match against, used by the payload-based constructor in place of a single property and value. | | conditionString | String | optional | Condition expression combining the payload entries, used by the payload-based constructor. | ## Constructors ```apex global SearchByPropertyInput( String property, String value, String driveId ) ``` ```apex global SearchByPropertyInput( String driveId, Map payload, String conditionString ) ``` --- # Types.DeleteResourcesInput https://help.cloudfiles.io/salesforce/typesdeleteresourcesinput # Types.DeleteResourcesInput Input type describing a resource (file or folder) to delete. > Kind: Apex type · Updated: 2026-07-01 Represents input for deleting resources with Client.deleteResource(). Each instance identifies one file or folder to remove. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | resourceIds | List<String> | required | The unique ID of the resource (file or folder) to be deleted. | | resourceType | String | required | Valid Values: file or folder. | | driveId | String | required | Required for Google Drive and SharePoint. Retrieve this from the Content Library tab in Salesforce using the "View Metadata" button. | ## Constructors ```apex global DeleteResourcesInput( List resourceIds, String resourceType, String driveId ) ``` --- # Types.CreateFileRequestInput https://help.cloudfiles.io/salesforce/typescreatefilerequestinput # Types.CreateFileRequestInput Input type describing a file request to create. > Kind: Apex type · Updated: 2026-07-01 Represents input for creating a File Request using Client.createFileRequests(). ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | name | String | required | Name of the file request. | | description | String | required | A description of the file request that will be visible to customers. | | destinationId | String | required | If you want to automatically move the received files to a folder, please provide the Folder Id here. You can get this value from the Content Library. | | library | String | required | One of sharepoint, google, onedrive, box, dropbox, cloudfiles. | | driveId | String | required | You can get this value from the Content Library. | ## Constructors ```apex global CreateFileRequestInput( String name, String description, String destinationId, String library, String driveId ) ``` --- # Types.DataroomChild https://help.cloudfiles.io/salesforce/typesdataroomchild # Types.DataroomChild One child (file or folder) to attach to a dataroom. > Kind: Apex type · Updated: 2026-07-01 Describes a single child resource — a file or folder — to add to a dataroom. Instances are collected into the children list of Types.AddDataroomChildrenInput, which is consumed by Client.addToDataroom(). ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | id | String | required | The resource Id of each file for which content version needs to be created. | | type | String | required | One of fileRequest, file, or folder. | | library | String | required | The related files library such as cloudfiles, google, sharepoint etc. | | driveId | String | required | Drive Id in external storage. Only applicable for SharePoint & Google Drive. You can get this value from Content Library. | ## Constructors ```apex global DataroomChild( String id, String type, String library, String driveId ) ``` --- # Types.AddDataroomChildrenInput https://help.cloudfiles.io/salesforce/typesadddataroomchildreninput # Types.AddDataroomChildrenInput Input describing a dataroom and the child resources to add to it. > Kind: Apex type · Updated: 2026-07-01 Represents input for adding one or more resources (files/folders) to a dataroom. Consumed by Client.addToDataroom(). Each entry pairs a target dataroom id with a list of Types.DataroomChild records. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | dataroomId | String | required | Id of the dataroom to add children to. | | children | List<DataroomChild> | required | The child resources to add. See Types.DataroomChild. | ## Constructors ```apex global AddDataroomChildrenInput( String dataroomId, List children ) ``` --- # Types.CreateDataroomInput https://help.cloudfiles.io/salesforce/typescreatedataroominput # Types.CreateDataroomInput Input describing a dataroom to create. > Kind: Apex type · Updated: 2026-07-01 Represents input for creating a dataroom. One entry per dataroom is passed to Client.createDatarooms(). ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | name | String | required | Name of the dataroom. | | description | String | required | A description of the dataroom that will be visible to customers. | ## Constructors ```apex global CreateDataroomInput(String name, String description) ``` ## Example ```apex Types.CreateDataroomInput input = new Types.CreateDataroomInput('Acme Deal Room', 'Documents shared with Acme'); ``` --- # Types.PermissionInput https://help.cloudfiles.io/salesforce/typespermissioninput # Types.PermissionInput Input describing a grant or revoke of read/write access on a file or folder. > Kind: Apex type · Updated: 2026-07-01 Represents input for updating the permission of a resource (file or folder). Passed to Client.updatePermissions() to grant or revoke read/write access for a set of emails or Salesforce users/groups. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | action | String | required | One of grant or revoke. | | role | String | required | One of read or write. | | resourceId | String | required | The Id of the file/folder. You can get this value from the Content Library. | | resourceType | String | required | One of file or folder. You can get this value from the Content Library. | | driveId | String | required | The Id of the drive. | | emails | List<String> | required | Email IDs for which you want to provide/revoke access. | | salesforceUserOrGroupIds | List<String> | required | List of Salesforce User/Group IDs to grant or revoke access. | | resourceIds | List<String> | required | List of resourceId values. | | salesforcePermission | Boolean | optional | Optional flag indicating whether the permission is applied as a Salesforce-side permission. Set via the constructor overload that accepts it. | ## Constructors ```apex global PermissionInput( String action, String role, String resourceId, String resourceType, String driveId, List emails, List salesforceUserOrGroupIds, List resourceIds ) ``` --- # Types.QueryDocumentPayload https://help.cloudfiles.io/salesforce/typesquerydocumentpayload # Types.QueryDocumentPayload Input payload describing a single document query. > Kind: Apex type · Updated: 2026-07-01 Represents input for the Query Document method. One Types.QueryDocumentPayload is passed per query in the list supplied to Client.queryDocument(). ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | query | String | required | The query text to run against the document. | | processedDocumentId | String | optional | Input is optional and does not need to be provided for a direct query. | | datasetId | String | optional | Optional dataset identifier to scope the query against. | | agent | String | optional | Optional agent to run the query with. | ## Constructors ```apex global QueryDocumentPayload( String query, String processedDocumentId ) ``` ```apex global QueryDocumentPayload( String query, String processedDocumentId, String agent ) ``` ```apex global QueryDocumentPayload( String query, String processedDocumentId, String datasetId, String agent ) ``` ## Example ```apex List queryDocuments = new List{ new cldfs.Types.QueryDocumentPayload( 'query', 'processedDocumentId' ) }; cldfs.Client.queryDocument(queryDocuments, 'integrationUser'); ``` --- # Types.ProcessDocumentPayload https://help.cloudfiles.io/salesforce/typesprocessdocumentpayload # Types.ProcessDocumentPayload Input payload describing a single document to process with AI. > Kind: Apex type · Updated: 2026-07-01 Types.ProcessDocumentPayload represents the input for the Client.processDocument() method. Pass a List agents ) ``` ```apex global ProcessDocumentPayload( String fileId, String driveId, String library, String context, String instructions, String pagesToProcess, List agents ) ``` --- # Types.DocGenRequestInput https://help.cloudfiles.io/salesforce/typesdocgenrequestinput # Types.DocGenRequestInput Input describing a document-generation request: template, merge variables, destination, and output type. > Kind: Apex type · Updated: 2026-07-01 Represents the input for the Generate Document (Sync) and Generate Document methods. It carries the template to render, the merge variables, the Resource destination, the DocGenParams, and the output document type. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | templateId | String | required | Id of the template to render. | | variables | Map<String, String> | required | Merge variables passed to the template as key/value pairs. | | documentType | String | required | Output document type for the generated file. | | destination | Resource | required | The Resource that specifies where the generated document is stored. | | params | DocGenParams | required | Additional generation parameters. See Types.DocGenParams. | | cloudFilesVariables | List<CloudFilesVariable> | optional | Optional structured CloudFiles variables. Only populated via the overload that accepts them; not part of the constructor documented below. | ## Constructors This custom type has a constructor that takes in the parameters in the order shown. Note the argument order differs from the field declaration order in the repo: the constructor takes documentType before destination, whereas the class declares destination before documentType. ```apex global DocGenRequestInput( String templateId, Map variables, String documentType, Resource destination, DocGenParams params ) ``` ## Example ```apex // For a more detailed example, see the example section in the // Generate Document (Sync) article. Types.DocGenRequestInput input = new Types.DocGenRequestInput( templateId, variables, documentType, destination, params ); ``` --- # Types.CreateContentVersionBatchPayload https://help.cloudfiles.io/salesforce/typescreatecontentversionbatchpayload # Types.CreateContentVersionBatchPayload Input payload for creating content versions when files are imported into Salesforce. > Kind: Apex type · Updated: 2026-07-01 Represents input for creating content versions when files are imported into Salesforce. Consumed by Client.createContentVersionBatch(). Each entry in files is a CreateContentVersionFlowInput describing one file to version. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | files | List<CreateContentVersionFlowInput> | required | The files to create content versions for. Each CreateContentVersionFlowInput carries library (the related files library such as cloudfiles, google, sharepoint), driveId (the drive where the files are located), and id (the resource Id of each file for which a content version is created). | | context | String | required | A short description attribute for the process of creating the content version. | ## Constructors ```apex CreateContentVersionBatchPayload( List files, String context ) ``` --- # Types.DeleteAttachmentInput https://help.cloudfiles.io/salesforce/typesdeleteattachmentinput # Types.DeleteAttachmentInput Input for detaching a file or folder from a Salesforce record. > Kind: Apex type · Updated: 2026-07-01 Represents the input for deleting an attachment. Consumed by Client.deleteAttachment() to remove the association between a file or folder and the Salesforce record it is attached to. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | resourceId | String | required | Id of the file or folder. | | resourceType | String | required | One of file or folder. | | parentId | String | required | Id of the Salesforce record the file or folder is attached to. | | objectType | String | optional | SObject type of the parent record. Optional; only accepted by the four-argument constructor. | ## Constructors ```apex global DeleteAttachmentInput( String resourceId, String resourceType, String parentId ) ``` ```apex global DeleteAttachmentInput( String resourceId, String resourceType, String parentId, String objectType ) ``` --- # Types.UploadSalesforceFilePayload https://help.cloudfiles.io/salesforce/typesuploadsalesforcefilepayload # Types.UploadSalesforceFilePayload Input describing a Salesforce file to copy into external storage. > Kind: Apex type · Updated: 2026-07-01 Represents input for uploading Salesforce files to external storage. Passed to Client.copySalesforceFiles() to copy a Salesforce content document into a destination library and folder. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | contentDocumentId | String | required | Salesforce Id of the content document object to be copied. | | library | String | required | Type of library. Example — sharepoint. You can get this value from the Content Library. | | folderId | String | required | Id of the folder in external storage where the file should be copied to. You can get this value from the Content Library. | | driveId | String | required | Only applicable for SharePoint or Google Drive libraries. Supply null for other libraries. You can get this value from the Content Library. | | context | String | optional | Optional. If you want to access the parentId in the Salesforce File Copied event, pass it here in JSON format — for example: { "recordId": "001dL00000x8X6TQAU" }. If you don't want to pass a value, pass null. | ## Constructors ```apex UploadSalesforceFilePayload( String contentDocumentId, String library, String folderId, String driveId ) ``` ```apex UploadSalesforceFilePayload( String contentDocumentId, String library, String folderId, String driveId, String context ) ``` ## Example ```apex Types.UploadSalesforceFilePayload payload = new Types.UploadSalesforceFilePayload( contentDocumentId, 'sharepoint', folderId, driveId, '{ "recordId": "001dL00000x8X6TQAU" }' ); ``` --- # Types.CreateFolderInput https://help.cloudfiles.io/salesforce/typescreatefolderinput # Types.CreateFolderInput Input describing a single folder to create. > Kind: Apex type · Updated: 2026-07-01 Represents input for creating folders. Pass a list of these to Client.createFolders() or Client.createFoldersAsync(). ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | parentId | String | required | Id of the parent folder. | | name | String | required | Name of the folder to be created. | | driveId | String | required | Only applicable for SharePoint or Google Drive libraries. Supply null for other libraries. You can get this value from Content Library. | | requestId | String | required | Pass null if using with Create Folders method or a random string if using with Create Folders Async method. This value can be used to filter the CloudFiles Event Object which would have information about the newly created folder. | ## Constructors ```apex CreateFolderInput( String parentId, String name, String driveId, String requestId ) ``` --- # Types.CreateAttachmentInput https://help.cloudfiles.io/salesforce/typescreateattachmentinput # Types.CreateAttachmentInput Input describing a single attachment to create from an external storage resource. > Kind: Apex type · Updated: 2026-07-01 Represents input for creating attachments using the Client.createAttachments() function. Each instance points at one file or folder in external storage and the Salesforce record to attach it to. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | resourceId | String | required | Id of the file/folder in external storage, for which we're creating the attachment. | | resourceType | String | required | One of file or folder. | | parentId | String | required | Salesforce Id of the record for which we're creating the attachment. | | driveId | String | required | Only applicable for SharePoint or Google Drive libraries. Supply null for other libraries. You can get this value from the Content Library. | | objectType | String | optional | Optional Salesforce object type of the parent record. Supplied via the 5-parameter constructor; omit or use the 4-parameter constructor to leave it unset. | ## Constructors ```apex CreateAttachmentInput( String resourceId, String resourceType, String parentId, String driveId ) ``` ```apex CreateAttachmentInput( String resourceId, String resourceType, String parentId, String driveId, String objectType ) ``` --- # Types.CreateLinkInput https://help.cloudfiles.io/salesforce/typescreatelinkinput # Types.CreateLinkInput Input describing a CloudFiles link to create for a file, folder, or dataroom. > Kind: Apex type · Updated: 2026-07-01 Represents input for creating a CloudFiles link. Passed to Client.createLinks(), with one Types.CreateLinkInput per link to create. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | resourceId | String | required | Id of the file/folder in external storage, for which we're creating the attachment. | | resourceType | String | required | One of file, folder or dataroom. | | parentId | String | required | Salesforce Id of the record for which we're creating the attachment. | | name | String | required | Name of the link. | | driveId | String | required | Only applicable for SharePoint or Google Drive libraries. Supply null for other libraries. You can get this value from Content Library. | ## Constructors ```apex CreateLinkInput( String resourceId, String resourceType, String parentId, String name, String driveId ) ``` --- # Types.MoveResourceInput https://help.cloudfiles.io/salesforce/typesmoveresourceinput # Types.MoveResourceInput Input describing a single file or folder to move to a destination folder. > Kind: Apex type · Updated: 2026-07-01 Represents input for moving a resource (file or folder) using Client.moveResources(). One Types.MoveResourceInput is supplied per resource to move. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | resourceId | String | required | Id of the file or folder to be moved. | | resourceType | String | required | One of file or folder. | | driveId | String | required | Drive Id, applicable for SharePoint or Google Drive. You can get this value from the Content Library. | | destinationId | String | required | Id of the destination folder. | | destinationDriveId | String | optional | Drive Id of the destination, for cross-drive moves. Supplied only via the five-argument constructor. | ## Constructors ```apex global MoveResourceInput( String resourceId, String resourceType, String driveId, String destinationId ) ``` ```apex global MoveResourceInput( String resourceId, String resourceType, String driveId, String destinationId, String destinationDriveId ) ``` ## Example ```apex List inputs = new List{ new cldfs.Types.MoveResourceInput( '67ef8a5bd98d18e317d0891d', 'file', 'workspace', '68887db5ef0b3ca7534dbbd5' ) }; cldfs.Client.moveResources(inputs, 'cloudfiles', 'integrationUser'); ``` --- # Types.CopyResourceInput https://help.cloudfiles.io/salesforce/typescopyresourceinput # Types.CopyResourceInput Input describing one file or folder to copy to a destination folder. > Kind: Apex type · Updated: 2026-07-01 Represents input for copying resources (files/folders) using the Client.copyResources() method. Each instance names one source resource and where it should be copied to. ## Fields ### Fields | Parameter | Type | Required | Description | |---|---|---|---| | id | String | required | Id of the source file/folder. | | destination | String | required | Id of the destination folder. | | destinationDriveId | String | required | Applicable only for sharepoint and google library. Id of the drive where the destination folder is located. You can get this value from the Content Library. | | context | String | optional | Optional JSON representation of context to attach to the copy operation. | ## Constructors ```apex global CopyResourceInput( String id, String destination, String destinationDriveId ) ``` ```apex global CopyResourceInput( String id, String destination, String destinationDriveId, String context ) ```