> You are reading the Docusign Developer Documentation. For clean Markdown of any page, append .md to the page URL.
>
> Documentation indexes by section:
> - APIs and SDKs: https://docusign.docs.buildwithfern.com/docs/llms.txt
> - Platform 101: https://docusign.docs.buildwithfern.com/platform/llms.txt
> - Extension Apps: https://docusign.docs.buildwithfern.com/extension-apps/llms.txt
> - Docusign CLI: https://docusign.docs.buildwithfern.com/docusign-cli/llms.txt
>
> Authentication (OAuth, JWT Grant, M2M): https://docusign.docs.buildwithfern.com/platform/auth
> Webhooks and Connect: https://docusign.docs.buildwithfern.com/platform/webhooks
>
> OpenAPI specifications: https://docusign.docs.buildwithfern.com/openapi.json
> MCP server: https://docusign.docs.buildwithfern.com/_mcp/server

# Action schema

> Learn about the action object structure for your extension app manifest schema.

The `action` object describes a call to an external service.

An `action` object may define a required call for an extension or an optional call. Optional calls are known as [capabilities](/extension-apps/extension-apps-101/concepts/capabilities).

Each action must conform to a contract defined by Docusign. This contract is specified by the `template` property.

| Property               | Type     | Required?             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ---------------------- | -------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`                 | `String` | Yes                   | The name of the action or capability. For file IO extensions, valid values are:- `get-file`
- `get-files`
- `get-type-names`
- `list-directory-contents`
- `list-drives`
- `list-headers`
- `export-to-destination`
- `search`
- `write-file`For other extensions, any value can be used. Note that the `get-file` value is only used for actions that have Agreement Manager as the extension point.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `description`          | `String` | Yes                   | The description of the action.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `template`             | `String` | Yes                   | Defines the contract of the action. This determines the shape of the request that Docusign will send to the external platform called by this action. Valid values:- `ConnectedFields.Version1.Verify`
- `DataIO.Version6.CreateRecord`
- `DataIO.Version6.GetTypeDefinitions`
- `DataIO.Version6.GetTypeNames`
- `DataIO.Version6.PatchRecord`
- `DataIO.Version6.SearchRecords`
- `FileIO.Version1.GetFile`
- `FileIO.Version1.GetFiles`
- `FileIO.Version1.ListDirectoryContents`
- `FileIO.Version1.ListDrives`
- `FileIO.Version1.Search`
- `FileIO.Version1.WriteFile`
- `FileIO.Version1.ListHeaders`
- `FileIO.Version1.ExportToDestination`
- `Suggest.Version1.PostalAddress`
- `Typeahead.Version1.PostalAddress`
- `Verify.Version1.BankAccountOwner`
- `Verify.Version3.BankAccount`
- `Verify.Version1.BusinessEntity`
- `Verify.Version1.Email`
- `Verify.Version1.PhoneNumber`
- `Verify.Version1.PostalAddress`
- `Verify.Version2.SocialSecurityNumber` |
| `contractType`         | `String` | Depends on the action | Valid values:- `action`: The default value. The external system does not send a callback request to Docusign after performing an asynchronous operation.
- `action-with-callback`: The external system sends Docusign a callback request to report the outcome of an asynchronous operation.**Note:** The only action that currently supports this property is the file input cloud storage extension's [Get File](/extension-apps/extension-app-reference/extension-contracts/file-input-cloud-storage#get-file) action. This property is required for the **Get File** action, and it must be set to `action-with-callback`.                                                                                                                                                                                                                                                                                                                                           |
| `connectionsReference` | `String` | Yes                   | The name of the connection defined in your manifest.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `params`               | `Object` | Yes                   | An object containing the data required to call the external platform.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `params.uri`           | `String` | Yes                   | The URI of the external platform called by the action.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

An `action` object looks like this.

```text
{
  "name": "Verify Action",
  "description": "Sends envelope values for verification by an external service",
  "template": "ConnectedFields.Version1.Verify",
  "connectionsReference": "authentication",
  "params": {
    "uri": "https://fontara.com/api/connectedfields/verify"
}
```