Backing up signed contracts to SharePoint, Google Drive, or another storage system
Overview
Tomorro doesn’t natively replicate contracts to an external storage system, but you can build a lightweight automation that pushes every signed contract to SharePoint, Google Drive, Box, S3, or any storage of your choice.
The creation of this automation required minimum technical skills and access to tool in order to support the automation. It can be no-code as Make, Zapier or n8n as well as custom code.
This article covers two scenarios:
1. Simple backup : every signed contract is saved as a PDF to a single destination folder. This is the recommended approach and works for most use cases.
2. Mirroring your Tomorro folder structure : replicating the exact folder hierarchy you have in Tomorro. This is technically possible but significantly more complex (see the advanced section below).
Prerequisites
Before you start, make sure you have:
• An admin account on Tomorro (required to create webhooks)
• Credentials for your destination storage (SharePoint, Google Drive, etc.)
• A Tomorro API key
Important : the webhook is user-based. The webhook will only fire for contracts in which the user who created it is a participant. To back up every signed contract in your organization, the webhook must be created and configured by a user who is added as a participant on all relevant contracts (typically a service account or a legal admin with broad access).
Simple backup (recommended)
This is the easiest and most reliable setup. Every signed contract lands as a PDF in a single folder in your destination storage.
Step 1 : Create the trigger (Webhook “Contract signed”)
In Tomorro, create a webhook subscribed to the contract.signed event. When a contract is signed, Tomorro will send a notification containing the contract Id to your automation tool.
Step 2 : Retrieve the signed file via API
Once your automation receives the webhook, call the Tomorro API endpoint Get contract signed files
curl --request GET \
--header 'x-api-key: <api-key>'
This returns the signed PDF (plus attachments signed in the bundle of signature) for that contract.
Step 3 : Save the file in your storage
Use your automation tool’s connector (SharePoint, Google Drive, Box, etc.) to upload the file to your chosen destination folder.
That’s it ! You now have an automated backup of every signed contract.
Advanced : Mirroring the Tomorro folder structure
If you want your backup to replicate the exact folder hierarchy you have in Tomorro, be aware that this is significantly harder. We generally recommend the flat structure above unless you have a strong reason to mirror the hierarchy.
Why it’s complex
The folder a contract lives in inside Tomorro depends on access rights. The same contract can appear in different folders depending on who is looking at it, because Tomorro’s folder system is essentially a set of dynamic rules layered on top of permissions, not a static path stored on the contract itself.
As a result :
There is no single “folder path” returned by the API for a contract.
To rebuild the hierarchy externally, you would need to re-implement all the folder rules that define your Tomorro contract type dynamic storage.
Every time you change a folder rule in Tomorro, you would need to update the rule in your automation as well.
If you still want to go ahead
A high-level approach :
1. Document each folder rule you have in Tomorro (e.g. “Contract type = NDA and Counterparty country = France” → folder /Legal/NDA/France/).
2. In your automation, evaluate the same rules against the contract’s fields (after the webhook fires and you fetch the contract metadata) to determine the destination folder.
3. Make a query in Tomorro to retrieve this metadatas :
curl --request GET \
--url https://api.tomorro.com/v2/contracts/{id} \
--header 'x-api-key: <api-key>'
4. Create the folder in your storage if it doesn’t already exist, then upload the file.
Our recommendation: start with the flat backup. If your team later needs faceted navigation (by contract type, counterparty, date, etc.), most storage systems (SharePoint, Google Drive) handle this better with metadata columns and saved views than by trying to mirror a complex folder tree.
FAQ
Does the webhook trigger retroactively for contracts already signed?
No. The webhook only fires for contracts signed after the webhook is created. To back up historical contracts, run a one-time export via the API.
Can I back up contracts that aren’t yet signed (e.g. drafts/negotiating)?
No, because document are not in PDF format yet.
What happens if my storage destination is temporarily unreachable?
Your automation tool should handle retries. We recommend enabling retry-on-failure in Make/Zapier/n8n and logging failed uploads to a separate channel (email, Slack) for visibility.
Is the webhook secured?
Yes, webhooks include a signature header that you should verify in your automation to ensure the request really comes from Tomorro.
Need help?
If you’re not sure which approach fits your use case, reach out to your CSM, we’ll help you scope the integration before you build it.


