How to connect DocuSign to Google Sheets for status, not contents
Envelope status is worth tracking in a spreadsheet; what is inside the documents is not. Chasing signatures that have stalled, and the audit trail you must not fragment.
On this page
- What we'll cover
- Status yes, contents no
- The envelope lifecycle
- Building it with CodeWords
- Chasing what has stalled
- Recipients, routing, and where it gets stuck
- The audit trail you must not fragment
- Fields from the document, carefully
- DocuSign Connect, and when to push instead of poll
- Making it survive
- Limits worth knowing about
- What to set up first
- Frequently asked questions
- Related reading
There is a clean line in this one. Envelope status — who has signed, who has not, how long it has been sitting — is exactly the kind of thing a spreadsheet is good at, and chasing it by hand is exactly the kind of work nobody does consistently.
What is inside the envelopes is the opposite. Signed agreements are the documents an organisation most needs to keep in one controlled place with an intact audit trail, and a spreadsheet is not that place.
What we'll cover
- Status yes, contents no
- The envelope lifecycle
- Building it with CodeWords
- Chasing what has stalled
- Recipients, routing, and where it gets stuck
- The audit trail you must not fragment
- Fields from the document, carefully
- DocuSign Connect, and when to push instead of poll
- Making it survive
- Limits worth knowing about
- What to set up first
- Frequently asked questions
Status yes, contents no
Status is metadata: which envelope, which recipients, what state, how long. Useful in a sheet, shareable with a team, and not sensitive in the way the document is.
Contents are the agreement. Terms, prices, signatures, and personal details, which belong in the document management system and its access controls.
A spreadsheet has none of those controls. No retention policy, no access audit, and sharing that widens over time without review.
The tempting middle ground — extracting a few fields from the document into the sheet — needs deciding deliberately rather than by default, and is covered below.
Link, do not copy. A link to the envelope gives anybody with permission the document, and gives anybody without it nothing, which is the correct behaviour.
The envelope lifecycle
Worth knowing precisely, since the states are what the sheet tracks.
Created and not yet sent, which is a draft and frequently forgotten.
Sent, meaning delivered to the first recipient in the routing order.
Delivered, meaning a recipient has opened it — different from sent, and the distinction matters when chasing.
Completed, when everybody in the routing has signed.
Declined, where a recipient refused, which needs somebody to know immediately.
Voided, where the sender cancelled it.
Expired, where the envelope timed out according to its settings — the state that most often surprises people, since the document simply stops being signable.
A sheet with these as a status column, and the timestamp of the last change, answers almost every question anybody has about a contract pipeline.
Building it with CodeWords
CodeWords connects to more than 3,000 integrations, and the connection is made once and reused.
- Open CodeWords and start a new automation.
- Describe what should happen in plain language to Cody, the automation builder: which envelopes, which statuses, and which sheet.
- Authorize the connection to DocuSign for the relevant account, plus access to the target spreadsheet.
- Describe the exceptions: an envelope voided since the last run, a recipient who has bounced, an envelope approaching expiry.
- Run it against a test account and confirm the statuses before pointing it at live agreements.
You describe the outcome; Cody builds it, connects it, and deploys it. The free plan covers light use, with Pro at $39 per month and Business at $100 per month as usage grows; details are on the pricing page.
Chasing what has stalled
The work this removes, and the reason to build it.
Sent and never opened is a different problem from opened and not signed. The first is often a delivery or address problem; the second is a person.
Report by age, since a contract sitting for three days and one sitting for three weeks need different responses.
Name the specific recipient it is waiting on, not just the envelope, because the routing order means only one person can act at a time.
Flag approaching expiry before it happens, since an expired envelope has to be resent and the countersigning starts again.
Alert on declined immediately. It is the one state where delay is costly and where DocuSign's own notification may go to somebody who is not watching.
Report the aggregate weekly — how many are outstanding, average age, oldest — which is a number sales and legal teams rarely have and would act on.
Recipients, routing, and where it gets stuck
Routing order means sequential signing. Recipient three cannot act until recipients one and two have, so "waiting on" has exactly one answer at a time.
Recipient types differ. A signer, a carbon copy, and a certified delivery recipient are different roles, and an export that treats them alike overstates how many people are holding things up.
Email addresses go stale, and a bounced recipient means the envelope is stuck with no obvious signal in the status alone.
Delegation and reassignment happen, so the person who eventually signs may not be the one it was sent to, which matters for the record.
Report the current recipient and their status, which is the single most useful column in the sheet and the one that turns a report into a task list.
The audit trail you must not fragment
The part worth being careful about.
The certificate of completion is the evidence that a document was signed, by whom, when, and from where. It lives with the envelope.
Do not reconstruct it in a spreadsheet. A sheet of statuses is a management report, not evidence, and presenting it as the latter is a problem.
Keep the completed documents in one controlled place, with the certificate, rather than scattering copies into drives and sheets.
Link from the sheet to the envelope, so the authoritative record is one click away and access is still governed by DocuSign.
Note retention. Completed agreements usually have a retention obligation, and a spreadsheet copy is outside whatever process enforces it.
Fields from the document, carefully
Sometimes you genuinely need a value from inside — a contract value, a start date, a selected option.
Use form fields, which are structured and designed for this, rather than parsing the document.
Name them consistently across templates, since matching on field names is how the export finds them and templates get copied and edited.
Extract the few that matter, not everything, and decide each one deliberately.
Never extract signatures, identifiers, or payment details into a spreadsheet.
Consider whether the value belongs in the CRM instead, which usually has better access control and is where somebody will look for it anyway.
Report the missing field rather than producing an empty column, since a template edit that renamed a field otherwise fails silently.
DocuSign Connect, and when to push instead of poll
Polling for status is the obvious approach and it is the more expensive one.
DocuSign Connect pushes envelope events to an endpoint when status changes, which means you learn about a signature within moments rather than at the next poll.
A declined envelope is the case that justifies it. Waiting up to a day to find out somebody refused is a real cost, and a push removes it.
Verify the payload, since the endpoint is public and will receive things you did not send.
Delivery is retried, so handle repeats by keying on the envelope and the status.
Keep a scheduled reconciliation anyway. Pushes are occasionally missed, and a daily pass comparing the sheet against the account catches what slipped.
Polling remains fine for the daily report, where a few hours of latency costs nothing — the two approaches suit different questions and using both is normal.
Making it survive
Export incrementally by modified date, since a full account export gets large.
Replace a named range rather than appending, because envelope status changes and a log of state transitions is a different sheet from a current-status one.
Handle the token refresh, which is where these integrations break after weeks of working.
Report envelopes in unexpected states rather than bucketing them.
Report the outcome. Envelopes exported, statuses changed since last run, and anything approaching expiry.
Limits worth knowing about
Rate limits apply per account, with a daily ceiling, so a full history export needs pacing.
Tokens expire and must be refreshed, with consent that can be revoked.
Demo and production environments are separate, with separate credentials and separate data.
Sheets has a cell limit, which a multi-year envelope export will reach.
Some envelope detail requires additional calls, so a sheet with recipient-level columns costs several requests per envelope and needs pacing accordingly.
What to set up first
A current-status sheet: one row per open envelope, with the status, the recipient it is waiting on, the age, and a link to the envelope. It replaces the weekly exercise of somebody clicking through a list to see what is stuck, and it takes an afternoon.
Two habits make the difference. Name the specific recipient it is waiting on rather than just the envelope, since the routing order means only one person can act and chasing the wrong one wastes everybody's time. And link to the envelope rather than copying anything from inside it, because the document and its certificate should stay in one place with its access controls intact.
Frequently asked questions
Should the sheet contain the documents?
No. Status, recipients, and age belong in a sheet; the agreements and their certificates of completion belong in a controlled system. Link to the envelope rather than copying, so access stays governed.
What is the most useful column?
The recipient the envelope is currently waiting on. Routing order means only one person can act at a time, so a sheet that names them turns a status report into a chase list.
Why did an envelope stop being signable?
It expired, according to the settings on it. This is the state that most often surprises people, since nothing dramatic happens — the document simply stops working and it has to be resent.
Sent and delivered are different?
Yes. Sent means it went out; delivered means a recipient opened it. Something sent and never opened is often a delivery or address problem, and something opened and not signed is a person — different problems needing different chases.
Can I extract values from the contract?
Use form fields, which are structured for it, and extract only the few that matter. Never signatures, identifiers, or payment details. Often the value belongs in the CRM rather than a spreadsheet anyway.
Is a status sheet acceptable as an audit record?
No. The certificate of completion is the evidence, and it lives with the envelope. A sheet is a management report, and presenting it as evidence is the mistake to avoid.
Why does the integration stop working?
Token refresh, or revoked consent. Both are ordinary, both produce a failure that looks like a credential problem, and both are worth exercising during testing rather than meeting on the morning somebody needs the report.
Should I poll for status or use webhooks?
Webhooks for anything where latency costs — a declined envelope especially — and polling for the daily report, where a few hours of lag is immaterial. Using both is normal, with a scheduled reconciliation to catch pushes that were missed.
What is the one event worth an immediate alert?
Declined. Everything else can wait for the next report, but a refused agreement needs somebody the same hour, and DocuSign's own notification often goes to a sender who is not watching their inbox.