> ## Documentation Index
> Fetch the complete documentation index at: https://agents.nanonets.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# DocuSign Get Envelope Form Data

> Tool that reads back the values signers filled into a DocuSign envelope.

This document covers `docusign_get_envelope_form_data`, the tool that reads back the values signers filled into a DocuSign envelope.

## Authentication

DocuSign tools use the DocuSign connector, which authenticates with **JWT Grant** (server-to-server). Users configure `integration_key`, `user_id` and `private_key`, plus optional `account_id` and `environment`. See [docusign.md](/docs/tools/docusign) for setup and the one-time admin consent step.

## `docusign_get_envelope_form_data`

Returns every value a signer entered — text fields, checkboxes, radio buttons and dropdowns. Read-only, and most useful once an envelope reaches `completed`.

### Inputs

Required:

* `envelope_id`: Id of the envelope to read.

Optional:

* `field_names`: Return only these fields. Matching is **case-insensitive**, because template tab labels are hand-authored and their casing drifts between template versions.

### Output

Structured content includes:

* `envelope_id`, `envelope_status`
* `count`: number of fields returned
* `fields`: array of `{name, value, original_value}`
* `values`: a flat `name → value` map for direct lookup
* `recipients`: per-signer grouping with signing timestamps
* `missing_fields`: present only when `field_names` asked for something the envelope doesn't have

### Two behaviours to design around

**Values are returned verbatim, never interpreted.** A checkbox typically reads `"x"` or an empty string — not `true`/`false`. A radio group returns the selected option's label. Any yes/no or scoring logic belongs in the caller.

For clinical or otherwise consequential scoring (screening instruments, risk flags), keep that logic in deterministic code — `python_code` — rather than asking a model to read the value. A scoring rule that is a lookup table should stay a lookup table.

**A requested field that isn't on the envelope is reported, not dropped.** It appears in `missing_fields` and in the markdown summary. This matters: on a screening form "answered no" and "never asked" are different answers, and a tool that silently omitted the absent field would make a question that stopped being asked look like a negative response.

### Notes

* Field names come from the template's tab labels — stable within a template, different across templates. A template revision that renames a tab will surface as a `missing_fields` entry rather than a wrong value.
* An envelope that is not yet `completed` may return partial or empty form data; check `envelope_status` before trusting absence.
