DocuSign
Electronic signatures. Send documents for signature, see who has signed, remind or void an envelope, and send from templates.
| Property | Value |
|---|---|
| Slug | docusign |
| Definition version | 0.1.0 |
| Base URL | https://na3.docusign.net/restapi/v2.1 |
| Auth schemes | oauth2 |
| Action tools | 29 |
| By class | 13 read, 12 write, 4 destructive |
| Triggers | 0 |
| Provider rate limit | not declared, so outbound calls are unpaced |
Measured routing accuracy
44 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 29 cases written by hand and 15 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.
| Measure | Cases | Share |
|---|---|---|
| top-1 | 28/44 | 63.6% |
| top-8 | 37/44 | 84.1% |
The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.
Authentication
Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.
oauth2
| Property | Value |
|---|---|
| Authorization URL | https://account.docusign.com/oauth/auth |
| Token URL | https://account.docusign.com/oauth/token |
| Default scopes | signature |
| Refresh tokens | yes, the refresh daemon renews ahead of expiry |
Tools
29 action tools. The catalog-wide slug is docusign.<tool>, which is what search_tools returns and call_tool takes.
docusign.create_envelope
Create a new DocuSign envelope from one or more documents and recipients. Use when the user wants to create, prepare, or send a document for signature. Defaults to sending it immediately; pass status "created" to save it as an unsent draft instead. To send a draft later use send_envelope.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /accounts/{{params.account_id}}/envelopes.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id (GUID) the envelope belongs to. |
carbon_copies | array of object | no | People who receive a copy but don't need to sign. |
carbon_copies[].email | string | yes | Recipient's email address. |
carbon_copies[].name | string | yes | Recipient's full name. |
carbon_copies[].recipientId | string | yes | Number identifying this recipient, e.g. "2". |
carbon_copies[].routingOrder | string | yes | Delivery order as a string, e.g. "2". |
documents | array of object | yes | Files that make up the envelope. |
documents[].documentBase64 | string | yes | Base64-encoded file content. |
documents[].documentId | string | yes | Document number within the envelope, e.g. "1". |
documents[].fileExtension | string | no | File extension, e.g. "pdf". |
documents[].name | string | yes | File name shown to recipients |
email_blurb | string | no | Optional message body shown above the documents. |
email_subject | string | yes | Subject line recipients see in the signing email. |
signers | array of object | yes | People who must sign the envelope. |
signers[].clientUserId | string | no | Set to mark this signer for embedded (in-app) signing instead of an email invite. Required later to generate a signing URL with create_recipient_view. |
signers[].email | string | yes | Signer's email address. |
signers[].name | string | yes | Signer's full name. |
signers[].recipientId | string | yes | Number identifying this signer, e.g. "1". |
signers[].routingOrder | string | yes | Signing order as a string, e.g. "1". |
status | string, one of sent, created | no | sent dispatches it now (default); created saves it as a draft. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
envelopeId | string | |
status | string | |
statusDateTime | string | |
uri | string |
Also retrieved by: "get this contract out for people to sign", "put together a document package and send it around for signatures", "start a new signing request for this file", "prep this agreement so my client can sign it", "kick off signatures on this paperwork".
docusign.send_envelope
Send an existing draft DocuSign envelope that hasn't gone out yet. Use when the user already created or saved an envelope and now wants to send, share, or dispatch it. For a brand-new document, use create_envelope instead, which can send in the same call.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Draft envelope to send, from create_envelope or list_envelopes. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
envelopeId | string | |
status | string | |
statusDateTime | string |
Also retrieved by: "go ahead and fire off that draft to the client now", "this one's ready, push it out to the signers", "get the saved paperwork moving to the recipients", "dispatch the pending contract I set aside earlier", "release that draft so it actually goes out".
docusign.get_envelope
Get one DocuSign envelope's current status by envelope id: sent, delivered, completed, declined, or voided, with the relevant timestamps. Use when the user already has an envelope id or wants to check where a specific signature request stands.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Envelope to look up. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
completedDateTime | string | |
declinedDateTime | string | |
emailSubject | string | |
envelopeId | string | |
sentDateTime | string | |
status | string | |
voidedDateTime | string | |
voidedReason | string |
Also retrieved by: "has this contract been signed yet", "where does this agreement stand right now", "check on that paperwork I sent last week", "pull up the details for that signature request", "what's happening with the document I sent for signing".
docusign.list_envelopes
List or search DocuSign envelopes changed since a given date, filtered by status. Use when the user asks what's out for signature, what still needs signing, or wants to find an envelope by keyword rather than a known id.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/envelopes.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id to search within. |
count | integer | no | Max results to return, default 100. |
from_date | string | yes | Only envelopes changed on or after this date, ISO 8601 (e.g. "2026-07-01"). Required by DocuSign; use something like 30 days back for a broad "what needs signing" search. |
search_text | string | no | Free-text match against envelope subject and recipient names. |
start_position | integer | no | Offset into the result set, for paging. |
status | string, one of sent, delivered, completed, declined, voided, created, any | no | Filter by envelope status. Default any. |
to_date | string | no | Only envelopes changed on or before this date, ISO 8601. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
envelopes | array of object | |
envelopes[].completedDateTime | string | |
envelopes[].emailSubject | string | |
envelopes[].envelopeId | string | |
envelopes[].sentDateTime | string | |
envelopes[].status | string | |
resultSetSize | string | |
totalSetSize | string |
Also retrieved by: "what's still waiting on someone's signature", "show me every agreement I've got out there", "what paperwork is pending right now", "find that contract I sent a while back", "what have I got out for people to sign".
docusign.update_envelope
Change a draft DocuSign envelope's email subject or message before it's sent. Use when the user wants to edit or update the subject line or note on an envelope that hasn't gone out yet. To change who signs it, use update_recipients; to send it, use send_envelope.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
email_blurb | string | no | New message body. |
email_subject | string | no | New subject line. |
envelope_id | string | yes | Draft envelope to edit. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
envelopeId | string | |
status | string |
Also retrieved by: "fix the subject line on that draft before it goes out", "change the message on this unsent agreement", "edit the note attached to that pending paperwork", "rename what recipients will see for this draft".
docusign.void_envelope
Void an in-progress DocuSign envelope, permanently cancelling the signature request before it's completed. Use when the user wants to void, cancel, kill, or retract a document that's out for signature. Recipients can no longer sign it; a completed envelope cannot be voided.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls PUT /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Envelope to void. |
voided_reason | string | yes | Why the envelope is being voided, shown to recipients. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
envelopeId | string | |
status | string | |
voidedDateTime | string |
Also retrieved by: "kill this signature request, it's a mistake", "pull the plug on that agreement before it's finished", "this deal fell through, cancel the paperwork", "yank that contract back, don't let anyone sign it", "scrap the pending agreement entirely".
docusign.list_envelope_documents
List the documents attached to a DocuSign envelope, with each document's id and name. Use before downloading a specific document, or when the user asks what files are in an envelope.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/documents.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Envelope whose documents to list. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
envelopeDocuments | array of object | |
envelopeDocuments[].documentId | string | |
envelopeDocuments[].name | string | |
envelopeDocuments[].type | string | |
envelopeDocuments[].uri | string |
Also retrieved by: "what files did I attach to that agreement", "show me everything included in this signature packet", "what's inside that paperwork bundle", "check which files are part of this signing request".
docusign.download_envelope_document
Download one specific document from a DocuSign envelope by document id. Use when the user wants the actual file, not just its status. For the whole signed packet in one file, use get_combined_document.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/documents/{{params.document_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
document_id | string | yes | Document to download, from list_envelope_documents. |
envelope_id | string | yes | Envelope the document belongs to. |
Also retrieved by: "grab the actual file from that signing packet", "give me the contract itself, not just its status", "save a copy of that one file from the agreement", "get me the pdf from that particular signature request".
docusign.get_combined_document
Download every document in a DocuSign envelope combined into a single PDF, in one call instead of one per document. Use when the user wants the whole signed packet or final file as one download.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/documents/combined.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
certificate | boolean | no | Include the Certificate of Completion pages. Default false. |
envelope_id | string | yes | Envelope whose documents to combine. |
Also retrieved by: "give me the whole signed packet as one file", "bundle everything together into a single download", "I want the entire agreement in one pdf, not piece by piece", "merge all the files from that signing request into one".
docusign.get_envelope_certificate
Download a DocuSign envelope's Certificate of Completion: the tamper-evident record of who signed, when, and from where. Use when the user needs proof of signing separate from the signed document itself.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/documents/certificate.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Envelope whose certificate to download. |
Also retrieved by: "prove that this contract was actually signed", "grab the paperwork trail showing who signed and when", "I need documentation that this was legally completed", "give me the tamper-proof record for this agreement".
docusign.get_envelope_audit_trail
Get the full audit trail of status and delivery events for a DocuSign envelope: every view, send, and signature event with a timestamp. Use when the user wants a detailed history of what happened to a document, beyond just its current status.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/audit_events.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Envelope whose history to fetch. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
auditEvents | array of object | |
auditEvents[].eventFields | array of object | |
auditEvents[].eventFields[].name | string | |
auditEvents[].eventFields[].value | string |
Also retrieved by: "walk me through everything that happened to this agreement", "show me every action taken on that paperwork, step by step", "who opened this and when, give me the whole history", "I need a detailed log of this signing request's activity".
docusign.list_recipients
List every recipient on a DocuSign envelope, with each person's name, email, routing order, and delivery or signing status. Use when the user asks who's on an envelope, who still needs to sign, or wants a recipient id before updating one.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/recipients.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Envelope whose recipients to list. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
carbonCopies | array of object | |
carbonCopies[].deliveredDateTime | string | |
carbonCopies[].email | string | |
carbonCopies[].name | string | |
carbonCopies[].recipientId | string | |
carbonCopies[].status | string | |
signers | array of object | |
signers[].deliveredDateTime | string | |
signers[].email | string | |
signers[].name | string | |
signers[].recipientId | string | |
signers[].routingOrder | string | |
signers[].signedDateTime | string | |
signers[].status | string |
Also retrieved by: "who's on this agreement and have they signed yet", "show me everyone tied to that paperwork", "who's still holding up this contract", "give me the list of people involved in this signing request".
docusign.add_recipients
Add one or more new signers or CC recipients to a draft DocuSign envelope that hasn't been sent yet. Use when the user wants to add someone else to sign or be copied on a document before it goes out. Give at least one of signers or carbon_copies.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/recipients.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
carbon_copies | array of object | no | New CC-only recipients to add. |
carbon_copies[].email | string | yes | |
carbon_copies[].name | string | yes | |
carbon_copies[].recipientId | string | yes | |
carbon_copies[].routingOrder | string | yes | |
envelope_id | string | yes | Draft envelope to add recipients to. |
signers | array of object | no | New signers to add. |
signers[].clientUserId | string | no | Set to mark this signer for embedded signing instead of an email invite. |
signers[].email | string | yes | Signer's email address. |
signers[].name | string | yes | Signer's full name. |
signers[].recipientId | string | yes | Number identifying this signer, e.g. "2". |
signers[].routingOrder | string | yes | Signing order as a string, e.g. "2". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
carbonCopies | array of object | |
carbonCopies[].email | string | |
carbonCopies[].name | string | |
carbonCopies[].recipientId | string | |
signers | array of object | |
signers[].email | string | |
signers[].name | string | |
signers[].recipientId | string |
Also retrieved by: "put another person on this unsent contract", "get someone else added before this goes out", "loop in one more person on the paperwork", "include an extra signer on this draft".
docusign.update_recipients
Change an existing recipient's name, email, or routing (signing) order on a draft DocuSign envelope. Use when the user wants to fix a mistyped email, reorder who signs next, or edit a signer before the envelope has been sent.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/recipients.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Draft envelope whose recipients to update. |
signers | array of object | yes | Signers to update, identified by their existing recipientId. |
signers[].email | string | no | New email address. |
signers[].name | string | no | New full name. |
signers[].recipientId | string | yes | Existing signer to update. |
signers[].routingOrder | string | no | New signing order as a string. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
signers | array of object | |
signers[].email | string | |
signers[].name | string | |
signers[].recipientId | string |
Also retrieved by: "I typed her email wrong, fix it on this draft", "swap the signing order for the people on this agreement", "change who goes first on this pending contract", "correct a signer's info before this gets sent out".
docusign.delete_recipient
Remove one recipient entirely from a draft DocuSign envelope before it's sent. Use when the user wants to take someone off the signing list. Irreversible for that recipient's slot; the envelope must not have been sent yet.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/recipients/{{params.recipient_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Draft envelope to remove the recipient from. |
recipient_id | string | yes | Recipient to remove, from list_recipients. |
Also retrieved by: "take that person off the signing list entirely", "drop a signer from this unsent agreement", "get rid of one of the people on this draft", "remove someone from the paperwork before it goes out".
docusign.resend_envelope
Resend the signing email notification to everyone who hasn't yet completed a DocuSign envelope. Use when the user wants to nudge, remind, or resend the invite to someone who hasn't signed. Doesn't change the document or recipient list.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/recipients.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Envelope to resend notifications for. |
Also retrieved by: "nudge everyone who still hasn't signed", "ping the people who are dragging their feet on this", "fire off another reminder email for that contract", "poke the recipients again about that pending agreement".
docusign.get_recipient_tabs
Get the form fields (tabs) assigned to one recipient on a DocuSign envelope: signature blocks, initials, and date or text fields, with their positions and current values. Use when the user asks what a signer needs to fill in or where their signature goes.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/recipients/{{params.recipient_id}}/tabs.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Envelope the recipient belongs to. |
recipient_id | string | yes | Recipient whose tabs to fetch, from list_recipients. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
dateSignedTabs | array of object | |
dateSignedTabs[].tabId | string | |
dateSignedTabs[].value | string | |
signHereTabs | array of object | |
signHereTabs[].documentId | string | |
signHereTabs[].pageNumber | string | |
signHereTabs[].tabId | string | |
textTabs | array of object | |
textTabs[].tabId | string | |
textTabs[].value | string |
Also retrieved by: "what does this person actually need to fill out", "show me where their signature goes on the page", "what fields is this signer responsible for", "check what's left blank for that specific person".
docusign.create_recipient_view
Generate a one-time embedded signing URL for a recipient to sign a DocuSign envelope inside your own app instead of by email. Use when the user wants a signing link to share or embed rather than an email notification. The recipient must have been added with a clientUserId set.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/views/recipient.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
authentication_method | string, one of none, email | no | How the recipient's identity was verified before this view. Default none. |
client_user_id | string | yes | Same clientUserId given when this recipient was added. |
email | string | yes | Recipient's email, must match the envelope recipient's email. |
envelope_id | string | yes | Envelope the recipient is signing. |
recipient_id | string | yes | Recipient to generate the signing view for. |
return_url | string | yes | Where DocuSign redirects the recipient after signing. |
user_name | string | yes | Recipient's full name, must match the envelope recipient's name. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
url | string |
Also retrieved by: "give me a link so they can sign right inside our app", "I need an embedded signing session, not an email", "generate a URL this person can click to sign directly", "let them sign in-app instead of through their inbox".
docusign.get_envelope_notification
Get a DocuSign envelope's reminder and expiration settings: how many days until it expires and when reminder emails go out. Use when the user asks when an envelope expires or whether reminders are on.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/notification.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Envelope whose settings to fetch. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
expirations | object | |
expirations.expireAfter | string | |
expirations.expireEnabled | string | |
expirations.expireWarn | string | |
reminders | object | |
reminders.reminderDelay | string | |
reminders.reminderEnabled | string | |
reminders.reminderFrequency | string |
Also retrieved by: "when does this agreement actually expire", "are reminders even turned on for this contract", "check the nag schedule for that pending paperwork", "how long until this signing request times out".
docusign.update_envelope_notification
Turn on or change reminder emails and the expiration window for a DocuSign envelope. Use when the user wants to automatically remind signers, or change how many days an envelope stays valid before it expires.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/notification.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
envelope_id | string | yes | Envelope whose settings to change. |
expire_after | integer | no | Days before the envelope expires. |
expire_enabled | boolean | no | Turn automatic expiration on or off. |
expire_warn | integer | no | Days before expiration to warn the signer. |
reminder_delay | integer | no | Days after sending before the first reminder. |
reminder_enabled | boolean | no | Turn reminder emails on or off. |
reminder_frequency | integer | no | Days between repeat reminders. |
Also retrieved by: "start nagging them every few days until they sign", "set this to expire in two weeks if nobody signs", "change how often the reminder emails go out", "turn on automatic follow-ups for this agreement".
docusign.add_envelope_document
Add another document to a draft DocuSign envelope before it's sent. Use when the user wants to attach or include one more file in a document package that isn't out yet.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/documents/{{params.document_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
document_base64 | string | yes | Base64-encoded file content. |
document_id | string | yes | Document number to assign, e.g. "2". |
envelope_id | string | yes | Draft envelope to add the document to. |
file_extension | string | no | File extension, e.g. "pdf". |
name | string | yes | File name shown to recipients. |
Also retrieved by: "toss one more file into this unsent packet", "I forgot a page, attach it before this goes out", "throw another file into the pending signature request", "include an extra attachment on this draft".
docusign.delete_envelope_document
Remove a document from a draft DocuSign envelope before it's sent. Use when the user wants to take a file out of a document package that hasn't gone out yet. Irreversible for that document slot.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /accounts/{{params.account_id}}/envelopes/{{params.envelope_id}}/documents/{{params.document_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelope belongs to. |
document_id | string | yes | Document to remove, from list_envelope_documents. |
envelope_id | string | yes | Draft envelope to remove the document from. |
Also retrieved by: "take that file back out of the unsent packet", "I attached the wrong version, remove it", "drop one of the files from this pending agreement", "get rid of an attachment before this ships".
docusign.list_templates
List the reusable DocuSign templates saved on the account, with each template's name and id. Use when the user asks what templates exist or wants to find one to send from.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/templates.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id to list templates from. |
count | integer | no | Max results to return, default 100. |
search_text | string | no | Free-text match against template name. |
start_position | integer | no | Offset into the result set, for paging. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
envelopeTemplates | array of object | |
envelopeTemplates[].created | string | |
envelopeTemplates[].description | string | |
envelopeTemplates[].name | string | |
envelopeTemplates[].templateId | string | |
resultSetSize | string | |
totalSetSize | string |
Also retrieved by: "what saved forms do I have to send from", "show me the reusable paperwork I've already set up", "find that boilerplate agreement I use all the time", "what's already built and ready to send".
docusign.get_template
Get one DocuSign template's full details by template id: its documents and signer roles. Use after list_templates or when the user already knows which template they mean.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/templates/{{params.template_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the template belongs to. |
template_id | string | yes | Template to look up. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
description | string | |
documents | array of object | |
documents[].documentId | string | |
documents[].name | string | |
emailSubject | string | |
name | string | |
recipients | object | |
recipients.signers | array of object | |
recipients.signers[].recipientId | string | |
recipients.signers[].roleName | string | |
recipients.signers[].routingOrder | string | |
templateId | string |
Also retrieved by: "pull up the details on that saved form", "show me what's inside our standard agreement setup", "what roles are built into that boilerplate paperwork", "check the fields on our go-to contract form".
docusign.create_template
Create a new reusable DocuSign template from documents and signer roles. Use when the user wants to save a document package as a template to reuse, instead of building it from scratch every time.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /accounts/{{params.account_id}}/templates.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id to create the template in. |
description | string | no | Optional longer description of the template. |
documents | array of object | yes | Files that make up the template. |
documents[].documentBase64 | string | yes | Base64-encoded file content. |
documents[].documentId | string | yes | Document number, e.g. "1". |
documents[].fileExtension | string | no | File extension, e.g. "pdf". |
documents[].name | string | yes | File name. |
name | string | yes | Template name. |
signers | array of object | yes | Placeholder signer roles to fill in later when sending from this template. |
signers[].recipientId | string | yes | Number identifying this role, e.g. "1". |
signers[].roleName | string | yes | Role name, e.g. "Client". |
signers[].routingOrder | string | yes | Signing order as a string, e.g. "1". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
name | string | |
templateId | string | |
uri | string |
Also retrieved by: "save this as something I can reuse later", "turn this document into a reusable form", "set up a standard version of this agreement for next time", "build a boilerplate I don't have to recreate each time".
docusign.delete_template
Permanently delete a DocuSign template by template id. Use when the user wants to remove or get rid of a saved template. Irreversible; envelopes already created from it are unaffected.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /accounts/{{params.account_id}}/templates/{{params.template_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the template belongs to. |
template_id | string | yes | Template to delete. |
Also retrieved by: "get rid of that saved form for good", "we don't use that boilerplate anymore, remove it", "clean out an old reusable agreement we no longer need", "wipe that standard form from our account".
docusign.create_envelope_from_template
Create and, by default, send a new DocuSign envelope from an existing template, filling in each role with a real signer's name and email. Use when the user wants to send a document using a saved template rather than uploading files from scratch.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /accounts/{{params.account_id}}/envelopes.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id to create the envelope in. |
email_subject | string | yes | Subject line recipients see in the signing email. |
status | string, one of sent, created | no | sent dispatches it now (default); created saves it as a draft. |
template_id | string | yes | Template to send from, from list_templates. |
template_roles | array of object | yes | Real signers assigned to each of the template's roles. |
template_roles[].email | string | yes | Signer's email address. |
template_roles[].name | string | yes | Signer's full name. |
template_roles[].roleName | string | yes | Role name as defined on the template. |
template_roles[].routingOrder | string | no | Override the template's default signing order. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
envelopeId | string | |
status | string | |
uri | string |
Also retrieved by: "send our standard agreement to a new client", "fill in the boilerplate with this person's info and send it", "use our go-to form for this new signer", "run the usual paperwork with someone new plugged in".
docusign.list_folders
List the folders in a DocuSign account, such as Inbox, Sent, Drafts, and Completed, with each folder's id and name. Use before moving an envelope into, or finding envelopes within, a specific folder.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /accounts/{{params.account_id}}/folders.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id to list folders from. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
folders | array of object | |
folders[].folderId | string | |
folders[].name | string | |
folders[].uri | string |
Also retrieved by: "what folders do we even have set up in here", "show me where things get filed", "what's the folder structure look like".
docusign.move_envelope
Move one or more DocuSign envelopes into a different folder. Use when the user wants to file, organize, or move a document into a folder like Archive or a custom folder. Folder ids come from list_folders.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /accounts/{{params.account_id}}/folders/{{params.folder_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | string | yes | DocuSign account id the envelopes belong to. |
envelope_ids | array of string | yes | Envelope ids to move. |
folder_id | string | yes | Folder to move the envelopes into. |
Also retrieved by: "file that contract away in the right place", "shift this agreement into a different folder", "put that paperwork into the archive", "organize this signed document into its folder".