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.
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.
Example output
What does this prompt do?
- 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 do I need to use this?
- 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
How can I customize it?
- 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
FAQs
Why save the signing certificate as well as the contract?
Will this work if a contract has several signers?
Do I need to build the folder structure in Box first?
Can I archive to Google Drive instead of Box?
What happens if the same contract gets filed twice?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Stop digging through email for signed contracts.
Every completed contract lands in Box, gets logged in your register and shows up in Slack, without anyone lifting a finger.