CONNECT APP
Build with Docusign
File Storage
- OAuth
MCP
Give your agent Docusign tools
Every Docusign action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Docusign account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "docusign",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Draft:
const result = await mcp.callTool({
name: "docusign-create-draft",
arguments: {
account: "Account",
template: "Template",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "docusign",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Draft:
result = await session.call_tool("docusign-create-draft", {
"account": "Account",
"template": "Template",
})API PROXY
Call the Docusign API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Docusign API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed Docusign endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Docusign actions from your backend
Connect a user's Docusign account once, then run Create Draft on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "docusign-create-draft",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
docusign: { authProvisionId: "apn_xxxxxxx" },
account: "Account",
template: "Template",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="docusign-create-draft",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"docusign": {"authProvisionId": "apn_xxxxxxx"},
"account": "Account",
"template": "Template",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "docusign-create-draft",
"configured_props": {
"docusign": { "authProvisionId": "apn_xxxxxxx" },
"account": "Account",
"template": "Template"
}
}'TOOLS
Docusign actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Draft
actionCreate and send an envelope, or create a draft envelope. See the documentation hereWritev0.0.6 -
Create Envelope
actionCreate a DocuSign envelope from a full envelope definition JSON payload. Use this for advanced cases such as multiple documents, multiple recipients, composite templates, custom tabs, or eventNotification webhooks. For a simpler single-document flow, use Create Envelope From File. See the documentationWritev0.0.3 -
Create Envelope From File
actionCreate and optionally send a single-document DocuSign envelope from a file path or URL. This action places a SignHere tab by anchor text, such as/sn1/, in the uploaded document. Set Client User ID when you need embedded signing, then use Create Recipient View with the same value. See the documentationWritev0.0.4 -
Create Recipient View
actionCreate an embedded signing URL for a selected envelope recipient. The recipient must have been created with aclientUserId. See the documentationWritev0.0.3 -
Create Signature Request
actionCreates a signature request from a template See the docs hereWritev0.1.6 -
Download Documents
actionDownload the documents of an envelope to the /tmp directory. See the documentation hereRead-onlyv0.0.5 -
Get Envelope
actionGet details for a DocuSign envelope by ID. Use List Envelopes first if you need to find an envelope ID. See the documentationRead-onlyv0.0.3 -
List Accounts
actionList the DocuSign accounts available to the connected user. Use this to find the Account ID required by other actions when the connected user belongs to more than one account. See the documentationRead-onlyv0.0.2 -
List Documents
actionList documents in a DocuSign envelope. Use this to find document IDs before downloading a specific document. See the documentationRead-onlyv0.0.3 -
List Envelopes
actionSearch for DocuSign envelopes by date, status, email, text, or folder filters. Use this to find envelope IDs for Get Envelope, List Recipients, List Documents, Send Envelope, Void Envelope, or Create Recipient View. See the documentationRead-onlyv0.0.3 -
List Recipients
actionList recipients and recipient status for a DocuSign envelope. Use Include Tabs when you need each recipient's tab values and placement. See the documentationRead-onlyv0.0.2 -
Send Envelope
actionSend an existing draft DocuSign envelope by updating its status tosent. Use this after Create Envelope or Create Envelope From File, or any workflow that creates an envelope with statuscreated. See the documentationWritev0.0.3 -
Void Envelope
actionVoid a DocuSign envelope that is still in process. Voiding cancels the envelope and prevents recipients from completing it. See the documentationWritev0.0.3
EVENTS
Docusign triggers
Event sources your backend can deploy for users and receive through a webhook.
MULTI-APP
Use Docusign with other popular apps
Most products don't stop at one integration. Pair Docusign with the other apps your users rely on, and ship use cases that span both.
- App slug
- docusign
- Authentication
- OAuth
- Categories
- File Storage
- Actions
- 13
- Triggers
- 2
- API proxy
- Available
OAuth scopes
These are the scopes Pipedream's managed Docusign OAuth client requests when one of your users connects an account. Supply your own OAuth client to request a different set.
- signature
- extended
- openid