
Fast-Track Your Extension Apps with Reference Implementations
Our new reference implementations accelerate extension app development by providing comprehensive guidance and practical examples of requirements and best practices. Watch the videos, clone the GitHub repos, and get coding!

Extension apps are a powerful way to extend the Docusign platform with custom functionality. These apps enable developers to integrate external APIs directly into a Docusign workflow, making Docusign more adaptable to various business needs. Extension apps function by defining extensions and corresponding actions that activate at designated moments during the Docusign agreement process. When these actions are triggered, the extension app communicates with an external API, and the resulting response is seamlessly incorporated back into the Docusign workflow.
To assist developers in getting started with building extension apps, we are excited to introduce our extension app reference implementations. These are downloadable GitHub projects that showcase the three main extension types currently supported by Docusign. Each implementation includes a pre-built manifest file that can be directly uploaded to the Developer Console, allowing developers to instantly test the functionality of each extension type without having to configure the manifest or project from scratch.
Connected Fields: This extension enables real-time custom data verification in eSignature envelopes. Unlike data verification extensions that target specific values (such as bank accounts or addresses), the connected fields extension can verify any data against your organization’s system of record. View hosted manifest files for connected fields
Data IO: This extension enables developers to incorporate data reading and writing operations into a custom Maestro workflow, enabling seamless integration of data exchanges during the signing process. View hosted manifest files for data IO
Data Verification: This is a set of extensions that enable real-time validation of critical fields, including bank account details, bank account ownership, business Federal Employer Identification Numbers (FEIN), email addresses, phone numbers, postal addresses, and Social Security Numbers. View hosted manifest files for data verification
These reference implementations accelerate extension app development by providing comprehensive guidance and practical examples of requirements and best practices. To build an extension app, you must either use the form-based experience or create an extension app manifest file that outlines the app’s metadata, connections, extensions, and actions. Each reference implementation includes an example manifest that serves as a guide for developers, illustrating how to accurately define these components based on the schema established by Docusign (see sample code below). This example manifest will guide developers through configuring a sample OAuth connection and defining the required actions for each extension type. Additionally, each action is governed by a specific action contract that outlines the format for sending requests and the expected structure for receiving responses. Developers must ensure their extension apps handle data according to these contracts to ensure compatibility with the Docusign environment. The reference implementations demonstrate how to properly handle data by defining the correct request and response objects that align with the action contracts outlined in the documentation available on the Developer Center.
Here’s the example app manifest from the Connected Fields reference implementation:
{
"name": "Connected Fields App",
"description": {
"short": "App for Connected Fields",
"long": "This app is designed to allow users to use connected fields extensions"
},
"termsOfServiceUrl": "https://www.johndoe.com/tos",
"privacyUrl": "https://www.johndoe.com/privacy-security",
"supportUrl": "https://www.johndoe.com/support",
"publisher": {
"name": "John Doe",
"email": "john.doe@gmail.com",
"phone": "800-867-5309",
"website": "https://www.johndoe.com"
},
"connections": [
{
"name": "authentication",
"description": "Secure connection to the connected fields proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"clientId": "<CLIENT_ID>",
"clientSecret": "<CLIENT_SECRET>",
"scopes": [],
"customConfig": {
"authorizationMethod": "header",
"authorizationParams": {
"prompt": "consent",
"access_type": "offline"
},
"authorizationUrl": "<PROXY_BASE_URL>/api/oauth/authorize",
"requiredScopes": [],
"scopeSeparator": " ",
"tokenUrl": "<PROXY_BASE_URL>/api/oauth/token",
"refreshScopes": []
}
}
}
],
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABQVBMVEUAAAD/AACAAP//gID/VVX/Zmb/SUn/VVX/XV3/VVVLAP//S0v/UVFOAP//Tk7/VVX/UFD/VVX/U1P/UVGTIKb/U1NPAP//U1P/UFBLAP+HG7n/UVH/VFT/UVH/UVH/U1P/UVH/U1P/UVH/U1P/UlL/UVH/U1NNAP//UVH/UVH/UVFNAP//UlL/UlL/UlL/UlJLAP//UlL/UlL/U1MTAD5KGBheHx9HFhZGFhZFFhb/UlJMGRk+ExNNGBg8ExP/UlL/UlJAFBT/U1P/UlL/U1P/UlL/UlL/UlL/UlLZRkb/UlL/UlL/UlL/UlJDAOLiSUn/UlL/UlJEAOf/U1NGAO3/UlL/UVFHAPH/UlL/UlLxTU1MAP//UlIAAABMAP//UlL/UlJMAP8AAAD/UlL/UlIAAABMAP/9UVH+UlL/UlL///8T+Es2AAAAZXRSTlMAAQICAwUHCQsMEREWGhoeICQlJigoKiswM0JCRkhVVlhiZWlqd3h7h4qNj5OcoqWprK+2wMDAwcLDxMXIyMnKy8zMzc/T1tfd4uLk5ebo6Onq6+7v7/Hz8/T19vf5+fn6+/z8/hoS1SAAAAABYktHRGolYpUOAAABQElEQVRYw+3Wx1YCQRBG4TJjxBwxY8CAOWfBnBXMCqI1Wu//Am5cyDQ9Pe2/cTF339+qTlUTKU1kRNPD5VZ8sJEMVYuhRLTCE6gTY2fREgwQWW0AAbmJgIC894GAZLtBQNJNICDJMhCQIRS4rwEBiaFAOgQC0o8CcyjwXAkC0kXFrR35dR65e/QAhmnacXXO7nKLemCK3swA84J+MZDjB+A1HXDsE+Al3Sj5BXhZsxV8A7zyBQK8Xki4tQB4p4BwagPw5qcCbFsBvKEAs3ZATpnqUTuAL9xADwqEQeCAQGAMBdpBYJdAoBcE9kpBIEIYMEkYsB/CgKuff9ZfgZM2goBEPSFANlZOWiBlBDLxll+3VAGc+RcP4ONwZiD/Y+N4dJdydd1cpFxzx6paCoAACIB/CzxZAVUqMGIhvI6r778B8fsX3rztq9YAAAAASUVORK5CYII=",
"mediaType": "image/png"
},
"screenshots": [],
"extensions": [
{
"name": "My Connected Fields Extension",
"description": "Used to verify and autofill agreements with custom data models",
"template": "ConnectedFields.Version1.ConnectedFields",
"actionReferences": [
"My Verify Action",
"My GetTypeNames Action",
"My GetTypeDefinitions Action"
]
}
],
"actions": [
{
"name": "My Verify Action",
"description": "This is a description of my verify action",
"template": "ConnectedFields.Version1.Verify",
"connectionsReference": "authentication",
"params": {
"uri": "<PROXY_BASE_URL>/api/connectedfields/verify"
}
},
{
"name": "My GetTypeNames Action",
"description": "This is a description of my GetTypeNames action",
"template": "DataIO.Version6.GetTypeNames",
"connectionsReference": "authentication",
"params": {
"uri": "<PROXY_BASE_URL>/api/connectedfields/getTypeNames"
}
},
{
"name": "My GetTypeDefinitions Action",
"description": "This is a description of my GetTypeDefinitions action",
"template": "DataIO.Version6.GetTypeDefinitions",
"connectionsReference": "authentication",
"params": {
"uri": "<PROXY_BASE_URL>/api/connectedfields/getTypeDefinitions"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}
To use an extension app reference implementation, clone the project files from GitHub and follow the step-by-step instructions provided in the README file located in the root folder of each implementation. These instructions will guide you through setting up either a cloud-based or local environment, including configuring your development tools, running the app, setting up a public endpoint, and preparing the example manifest. The README also includes detailed instructions on how to upload an extension app manifest to the Docusign Developer Console to start testing the connection and extensions, as shown below.

To further support developers, we offer instructional videos that walk through the process of setting up a reference implementation and demonstrate how to test an extension app in the Docusign Developer Console and within a Docusign workflow. Currently available are the videos for setting up and testing a Data Verification or Data IO extension app using the appropriate reference implementation.
Videos:
How to Set Up a Reference Implementation for Docusign Extension Apps
Configuring a Docusign Template to Use a Data Verification Extension App
Setting up a Maestro Workflow to Test a Data IO Extension App
Start building with our extension app reference implementations today, and unlock the potential to customize Docusign workflows to meet your unique business needs!
Jumpstart your extension app journey by:
Signing up for a free developer account to get started
Learning more about extensions apps and how to build them
Joining the Docusign Developer Community for any development support
Additional resources
Karissa has been working for Docusign since 2020. As a member of the Developer Advocacy team, she creates content, media and code to help developers learn how to use Docusign technology, represents Docusign at virtual and in-person events, and supports developers on Docusign community forums.
Related posts
Discover what's new with Docusign IAM or start with eSignature for free
