> 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

# Connections

> Learn about defining a connection for your extension app manifest file.

A connection is the part of an extension app that defines the parameters required to access an external platform’s APIs. Typically, this will contain authorization data for the account that will make the API calls on that platform. To extend your workflow to multiple external platforms, you can register and apply multiple extension apps, one for each platform.

## Define a connection in the extension app manifest

This JSON snippet demonstrates how to define a connection in an app manifest file. See [Connection schema](/extension-apps/extension-app-reference/app-manifest-reference/connection) for more details.

```text
"connections": [
    {
      "name": "authentication",
      "description": "Secure connection to example API proxy",
      "type": "oauth2",
      "params": {
        "provider": "CUSTOM",
        "scopes": [],
        "clientId": "6f22ef90-xxxx-xxxx-xxxx-e4be02783d3c",
        "clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
        "customConfig": {
          "tokenUrl": "https://example.app/api/oauth/token",
          "authorizationUrl": "https://example.app/api/oauth/code",
          "authorizationParams": {
            "access_type": "offline",
            "prompt": "consent"
          },
          "authorizationMethod": "header",
          "scopeSeparator": " ",
          "requiredScopes": []
        }
      }
    }
  ]
```

## Define a connection using a form

You can also define a connection using a form. After you have [used a form to register your extension app](/extension-apps/build-an-extension-app/register/use-form), you can update the connection settings on the  [extension app's integration details](/extension-apps/build-an-extension-app/register/use-form/integration-details#access-integrations-details-for-an-extension-app) page.

Use the form to give the connection a unique name and configure the parameters required for authorization with the external platform including scopes, the OAuth2 endpoint, the client ID and secret, and any authorization query parameters. See [Update connection settings](/extension-apps/build-an-extension-app/register/use-form/integration-details#update-connection-settings) for more details on how to configure these values.

![A screenshot of the basic info section of the form-based experience for creating a connection](/_fern-files/_img/538ef4c7595e5eb8ca3719d6acaaa39fb7e5b47b08c0bd3a0ebabc3775dc9440.webp)
![A screenshot of the custom config section of the form-based experience for creating a connection](/_fern-files/_img/335c4cf2e4be7a15f62e9022e98f4385f1b8ff9412b39e758ec0477a5e403fa3.webp)

## Next steps

* [Actions](/extension-apps/extension-apps-101/concepts/actions)
* [Extensions and extension points](/extension-apps/extension-apps-101/concepts/extensions-and-extension-points)
* [Example JSON manifest file](/extension-apps/build-an-extension-app/example-use-case)
* [Developer Console overview](/extension-apps/developer-console-overview)