# Auto-file completed Documenso contracts in Box and Sheets

> When a contract finishes signing, the signed PDF and its certificate land in Box by quarter, your register updates and your ops channel hears about it.

- Workflow type: code
- Services: Documenso, Box, Google Sheets, Slack Bot
- Categories: Operations, Sales
- Published: 2026-08-07

## What it does

- Watches for contracts that finish signing in Documenso and files them the moment they complete, so nobody has to remember to do it
- Saves both the signed contract and its signing certificate to Box, in a folder for the year and quarter the contract closed in
- Adds a row to your contract register spreadsheet with the title, every signer, the completion time and a link straight to the file
- Posts a confirmation in your operations channel so the team can see the contract landed and where it went

## What you'll need

- A Documenso account that you send contracts for signature from
- A Box account with a folder you want to use as the contract archive
- A Google Sheets spreadsheet to act as your contract register
- A Slack workspace with a channel for operations updates

## Prompt

Whenever a Documenso envelope is completed, file it automatically so nobody ever has to dig through email for a signed contract again. Trigger this workflow on the Documenso webhook for the document completed event.

Start by taking the envelope id from the webhook payload and calling Documenso Get Envelope to read the envelope title, the completion timestamp, the envelope items and the full recipient list with every signer name and email.

Then call Download Envelope Item to get the signed PDF for each item in the envelope, and Download Envelope Certificate PDF to get the signing certificate. Keep both. The certificate is what proves who signed and when if the contract is ever disputed, so it belongs in the archive alongside the contract itself.

Upload both files to Box with Upload File, into a folder path organised by year and then quarter derived from the completion date, for example Contracts / 2026 / Q3 under the archive root folder. Use List Folder Items to check whether the year folder and the quarter folder already exist, and Create Folder for whichever one is missing, so the same path is reused rather than duplicated.

Name each uploaded file with the envelope title plus the completion date in YYYY-MM-DD form so the archive stays searchable in Box, for example "Acme Corp MSA 2026-08-07.pdf" and "Acme Corp MSA 2026-08-07 signing certificate.pdf". Strip any characters Box does not accept in filenames from the title. If an envelope has more than one item, append the item name to keep the filenames distinct. If a file with that exact name is already in the folder, upload it with Upload New File Version instead of creating a duplicate, so a replayed webhook does not litter the archive.

Once the signed contract PDF is uploaded, call Add Shared Link to File on it and keep the resulting URL as the Box link for the register.

Append one row to our contract register in Google Sheets with Append Values, capturing the envelope title, the envelope id, every signer name, every signer email, the completion timestamp and the Box link. When there is more than one signer, list the names in one cell and the emails in another, comma separated, so the row stays a single line per contract.

Finally, confirm in Slack through the Slack Bot Send a Message operation so the operations channel can see the contract landed and got filed. The message should name the contract, list the signers, state when it completed, show the folder path it was filed into and link straight to the file in Box.

Every step here is fixed, so build this as a code workflow: known downloads, a known folder convention, a known register schema and a known confirmation message. No reasoning or judgement is required at any point.

## How to customize

- Change the filing convention: sort by client name or contract type instead of year and quarter
- Adjust the register columns to match the spreadsheet you already keep, such as contract value or renewal date
- Pick which Slack channel gets the confirmation, or send it somewhere private if contract activity is sensitive

## Example output

Contract filed: Acme Corp MSA
Signers: Dana Whitfield (dana@acme.com), Robert Lang (rlang@ourcompany.com)
Completed: 7 Aug 2026, 14:32
Filed to: Contracts / 2026 / Q3
Open in Box: https://app.box.com/s/acme-corp-msa-2026-08-07

## FAQ

### Why save the signing certificate as well as the contract?

The certificate is the record of who signed, when they signed and from where. It is exactly what you need if a contract is ever questioned or disputed, so it gets filed right next to the signed PDF under the same contract name and date.

### Will this work if a contract has several signers?

Yes. Every signer name and email is captured on the register row, so you can see the full list at a glance without opening the file.

### Do I need to build the folder structure in Box first?

No. You just pick the top-level archive folder. The year folder and the quarter folder are created as contracts complete, and reused from then on.

### Can I archive to Google Drive instead of Box?

Box is the storage destination for this one. Google Drive file uploads are not available in our catalog, so we recommend keeping the archive in Box. The register and the Slack confirmation work exactly the same either way.

### What happens if the same contract gets filed twice?

It reuses the existing quarter folder and saves a repeat file as a new version rather than creating a duplicate, so the archive stays clean even if a notification arrives more than once.

Use this prompt in General Input: https://www.generalinput.com/prompts/auto-file-completed-documenso-contracts-in-box-and-sheets