File output cloud storage extension contract reference
The file output cloud storage extension writes documents generated from a Workflow Builder workflow Send Documents for Signature step to a cloud storage platform.
You can include this extension when you register an extension app. If you register the extension app using a form, select the File Output Cloud Storage extension in the form-based UI, as shown in this figure:

During the form-based extension app registration process, if you select a file IO extension, its required actions are automatically added to the app. You can then configure the actions’ endpoint URIs and other properties on the Integration Details page. The extension’s optional capabilities can be added or removed only by editing the app manifest file. After you’ve added capabilities via the manifest file, you can edit them on the Integration Details page. See Action schema for information about action and capability properties in the app manifest file.
If you register the extension app using an app manifest file, set the extensions.template value in your app manifest to FileIO.Version1.FileOutputCloudStorage.
This extension has one required action and two optional capabilities. Below is a list of their identifiers as they appear in the form-based app registration UI and the app manifest. See Example extension app use cases for a complete sample app manifest for file output to cloud storage.
Both the action and the capabilities are defined in the app manifest fileʼs actions object. This definition includes a template value, a name, and the endpoint URL. The action and capabilities must also be referenced from the extensions object as follows:
- For both the action and capabilities, include the
actions.namevalue from theactionsobject in theextensions.actionReferencesarray. - Include a reference to each capability in the
extensions.capabilitiesarray. Use the value from the App manifest extensions.capabilities value column in the table above.
For example, the manifest file action definitions for the Write File action and the List Drives capability look like this:
The extensions object includes the actions.name values for both the Write File action and the List Drives capability in the actionReferences array. In addition, the List Drives capability is included in the capabilities array:
For details about what the actions and capabilities do when invoked, see File output cloud storage actions and capabilities.
When registering an extension app, you cannot include both a file output system of record extension and a file output cloud storage extension in the same app. If you need to use both types of output in workflows, register a separate app for each extension.
Action contracts
Write File (FileIO.Version1.WriteFile)
This required action writes a completed agreement to a cloud storage system. It can be triggered from a Maestro workflow.
Write File is the label that appears when you register an extension app using a guided, form-based process.
If you register your extension app using an app manifest file, make sure that you:
-
Include a definition for the action in the
actionsobject. See Action schema for details about the required properties. The action definition must include these values, which are specific to this action:name: write-filetemplate: FileIO.Version1.WriteFile
-
Include the value from the
actions.nameproperty in theextensions.actionReferencesarray. See Extension schema for details.
See Example extension app use cases for a complete sample app manifest for file output to cloud storage.
HTTP method
This action initiates a POST request to the external API service.
Request
Example request 1
Example request 2
Request with hardcoded folder and file names:
Hardcoded file and folder names
A workflow process builder can hardcode file and folder names when defining a file output to cloud storage step, as shown here:
If the folder and file names are hardcoded, the same folder and file name will be used for every file that is written to the cloud storage system when workflow instances are executed. The hardcoded folder path and file name will be populated in the Write File requestʼs files.path property. The file name appears in files.basename.
Note: Folder paths can be specified during workflow step configuration only if the extension implements the List Directory Contents capability.
File and folder names that include workflow variables
Instead of hardcoding file and folder names, a process builder can use workflow variables to construct names that will be unique for each workflow instance. The variable values will be set during instance execution.
Note: Because hardcoded values will result in the same file and folder names being used for every workflow instance, Docusign recommends using variables in the names.
Shown here is an example in which a process builder has constructed a folder and file naming convention that consists of a combination of hardcoded values and variable names. The variable names appear in square brackets in the File path.
If a file output step specifies a folder and/or file name containing variables, the Write File request body will include a files.pathTemplateValues array that lists the workflow instance–specific variable values. When it receives the Write File request, the external system must use values from the files.path property and the files.pathTemplateValues array to construct the folder and file name as follows:
- Parse the
files.pathvalue in the request to determine which variables must be replaced with values. Each variable is listed in double curly braces in the format[workflow source].[variable name]. For example,{{``Send Documents for Signature.Envelope ID``}}refers to an envelope ID variable from the workflowʼs Send Documents for Signature step. - For each variable in
files.path, replace the string in double curly braces with the corresponding instance-specific value from thepathTemplateValuesarray. The order of thepathTemplateValueselements matches the order of thefiles.pathvariables.
Below is an example Write File request based on the folder and file naming convention shown in the screenshot:
The external system would complete these steps to derive the folder and file name:
- Replace
{{``Account owner Name``}}withTest Customer - Replace
{{``Send Documents for Signature.Envelope ID``}}with11721000-xxxx-xxxx-xxxx-2a498b65b09b - Replace
{{Instance Details.Start Date and Time}}with2025-Jun-16-06:31PM
Note: The external system should remove or replace prohibited characters in the file path and name before attempting to store the file.
The file path and name to use for the file sent in the request would be:
Participant Test Customer/Envelope ID 11721000-xxxx-xxxx-xxxx-2a498b65b09b_2025-Jun-16-06_31PM.pdf
In this example, the prohibited colon character in the start date/time has been replaced with an underscore.
Response
List Drives (FileIO.Version1.ListDrives)
This optional capability can be implemented for a file output cloud storage extension. It returns the drives available in the cloud storage system. If this capability is implemented, a workflow process builder can select from a list of drives when configuring a file output step.
Note: If the cloud storage system does not have the concept of drives and instead organizes folders and files under a different container type, this capability can retrieve a list of those containers instead. They will appear in the file output step configuration pageʼs Select drive list.
List Drives is the label that appears when you register an extension app using a guided, form-based process.
If you register your extension app using an app manifest file, make sure that you:
-
Include a definition for the capability in the
actionsobject. See Action schema for details about the required properties. The action definition must include these values, which are specific to this capability:name: list-drivestemplate: FileIO.Version1.ListDrives
-
Include the value from the
actions.nameproperty in theextensions.actionReferencesarray. -
Include the value from the
actions.templateproperty in theextensions.capabilitiesarray.
See Extension schema for details about the actionReferences and capabilities arrays. See Example extension app use cases for a complete sample app manifest for file output to cloud storage.
HTTP method
This action initiates a POST request to the external API service.
Request
Response
List Directory Contents (FileIO.Version1.ListDirectoryContents)
This optional capability can be implemented for a file output cloud storage extension. It returns a list of folders on the cloud storage system. If this capability is implemented, a workflow process builder can select from a list of folders when configuring a file output step or specify a naming convention for a new folder to be created.
Maestro can call List Directory Contents multiple times as a process builder configures a file output step, to enable the process builder to drill down in the folder structure. For example, the process builder can select Add Folder to choose a top-level folder. The process builder can then select Add Subfolder to choose a folder one level lower. Additional selections of Add Subfolder can be made to drill down further, and each time, a List Directory Contents request is executed.
List Directory Contents is the label that appears when you register an extension app using a guided, form-based process.
If you register your extension app using an app manifest file, make sure that you:
-
Include a definition for the capability in the
actionsobject. See Action schema for details about the required properties. The action definition must include these values, which are specific to this capability:name: list-directory-contentstemplate: FileIO.Version1.ListDirectoryContents
-
Include the value from the
actions.nameproperty in theextensions.actionReferencesarray. -
Include the value from the
actions.templateproperty in theextensions.capabilitiesarray.
See Extension schema for details about the actionReferences and capabilities arrays. See Example extension app use cases for a complete sample app manifest for file output to cloud storage.
HTTP method
This action initiates a POST request to the external API service.
Request
Example request 1
Example request 2
Example request 3
Request when List Directory Contents is called after after a process builder selects a drive (or similar container type) and then selects Add Folder:
Response
Error handling
The external system should return a 200 response code to Docusign if a request succeeded. Any other response code indicates that the request was not successfully executed.
This applies to all actions and capabilities. Developers are responsible for providing a code and message for each error.
Next steps
- Get an overview of the file output cloud storage extension and how it can be used.
- Explore the options for testing a file output cloud storage extension.
- Find out about other supported extensions.