# Create Envelope — Docusign

> Create 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…

- Key: `docusign-create-envelope`
- Type: Action (Write)
- Version: 0.0.3
- App: Docusign (`docusign`) — https://pipedream.com/apps/docusign.md
- This page (HTML): https://pipedream.com/apps/docusign/actions/create-envelope
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/docusign/actions/create-envelope/create-envelope.mjs

## Description

Create 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 documentation](https://developers.docusign.com/docs/esign-rest-api/reference/envelopes/envelopes/create/)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `account` | `string` | No | Your DocuSign account. Leave blank to automatically use your default account, or provide an Account ID (you can use List Accounts to retrieve available accounts). Options are loaded from the connected account. |
| `envelopeDefinitionJson` | `string` | Yes | A full DocuSign envelope definition JSON object. Example: {"emailSubject":"Please sign","status":"sent","documents":[...],"recipients":{"signers":[...]}}. |
| `status` | `string` | No | Optional envelope status override. Use created to save as a draft or sent to send immediately. |
| `mergeRolesOnDraft` | `boolean` | No | When creating a draft from multiple templates, merge template roles and remove empty recipients. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
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 accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_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()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "docusign-create-envelope",
  arguments: {
    account: "Account",
    envelopeDefinitionJson: "Envelope Definition JSON",
  },
})
```

**TypeScript**

```ts
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-envelope",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    docusign: { authProvisionId: "apn_xxxxxxx" },
    account: "Account",
    envelopeDefinitionJson: "Envelope Definition JSON",
  },
})

console.log(result)
```

**cURL**

```bash
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-envelope",
    "configured_props": {
      "docusign": { "authProvisionId": "apn_xxxxxxx" },
      "account": "Account",
      "envelopeDefinitionJson": "Envelope Definition JSON"
    }
  }'
```

---

- App: https://pipedream.com/apps/docusign.md · All apps: https://pipedream.com/apps
