File signed Dropbox Sign contracts into a Notion registry

Every 30 minutes, log each newly signed Dropbox Sign contract into a Notion registry and post a clean recap to Slack so nothing slips through.

Agentic Task
Dropbox SignNotionSlack BotOperationsSalesData SyncNotifications & AlertsDocument Processing
PromptCreate

Build me an agent workflow that files newly signed Dropbox Sign contracts into a Notion registry and posts a recap to Slack.

Trigger: cron, every 30 minutes. Use cron because Dropbox Sign is not in the poll provider catalog.

On each run, the agent should sweep Dropbox Sign for signature requests that have just become fully signed since the last run. Use the Dropbox Sign 'List Signature Requests' operation and filter so you only consider requests where is_complete is true. Skip anything created in test mode. Use the request's signed timestamp to focus on requests completed recently (since the previous sweep).

For each candidate signature request, pull: the request title, the signature request ID, the signed date, and from the request metadata the signer name, signer email, and signer company. Then call the Dropbox Sign 'Get Signature Request Files as File URL' operation to get a short lived download URL for the signed PDF.

Before writing anything, dedupe against the Notion 'Signed Contracts' database using the Notion 'Query a Database' operation. Match on the signature request ID property. If a row with that signature request ID already exists, skip the contract. This keeps re-runs and overlapping schedules safe.

If the contract is new, use the Notion 'Create a Page' operation to add a row to the Signed Contracts database with: Contract Title, Signer Name, Signer Email, Signer Company, Signed Date, Signature Request ID, and the signed PDF download URL. Map each value to the right Notion property type (title, email, rich text, date, URL).

After the Notion page is created, use the Slack Bot 'Send a Message' operation to post a short recap into the operations channel the user configures. The message should name the contract title, the signer, the company, a link to the new Notion page, and the signed PDF download URL. Keep it one paragraph, scannable.

Ask the user during setup: the Notion database ID for the Signed Contracts registry, the exact property names if they differ from the defaults above, the Slack channel for the recap, and how aggressive the 'recently signed' window should be (default to the last 35 minutes so the 30 minute sweep has a small overlap buffer).

Integrations to wire up: dropbox-sign, notion, slackbot.

Additional information

What does this prompt do?
  • Checks Dropbox Sign every 30 minutes for contracts that just finished signing and skips anything still in test mode or not yet complete.
  • Adds each new contract to your Notion Signed Contracts registry with the signer name, signer email, company, contract title, signed date, and a download link for the signed PDF.
  • Prevents duplicates by checking the registry first, so re-runs and overlapping schedules never create two rows for the same contract.
  • Drops a tidy recap into your operations Slack channel naming the contract, the signer, the company, and links to both the new Notion page and the signed PDF.
What do I need to use this?
  • A Dropbox Sign account with permission to view signature requests and download signed files.
  • A Notion workspace with a Signed Contracts database shared with your General Input connection. It should have columns for signer name, signer email, company, signed date, signature request ID, and a link or files field for the PDF.
  • A Slack workspace and the channel you want the recap posted to.
How can I customize it?
  • Change how often the sweep runs. Every 15 minutes for high-volume teams, hourly or once a day for quieter ones.
  • Pick which Slack channel hears about new contracts, or route specific contract types to different channels.
  • Add fields to the Notion registry like deal owner, contract value, or renewal date, and the workflow will fill in whatever you map.
  • Tighten or loosen the filter, for example only file contracts whose title contains 'MSA' or 'Order Form'.

Frequently asked questions

Will this create duplicate rows if the schedule runs twice or I re-run it manually?
No. Before logging anything, the workflow looks up the contract's unique signature request ID in your Notion registry. If it already exists, the workflow skips it, so re-runs and overlapping schedules are safe.
What about test signatures from Dropbox Sign?
Test mode requests are filtered out automatically. Only real, fully signed contracts make it into the Notion registry and Slack recap.
Do I need to build the Notion database first?
Yes. Create a Signed Contracts database in Notion with columns for the fields you want to track, and share it with your General Input connection. The workflow will populate new rows but it will not create the database itself.
Why a 30 minute schedule instead of an instant trigger?
Dropbox Sign does not stream events into our poll catalog, so a quick recurring sweep is the most reliable way to catch newly signed contracts without missing any. You can tighten the interval if you need faster filing.
Can the Slack recap go to more than one channel?
Yes. Tell the workflow which channels you want and how to route contracts between them. For example, send enterprise contracts to a deal desk channel and everything else to operations.

Stop hunting for signed contracts in your email.

Connect Dropbox Sign, Notion, and Slack once and every newly signed contract files itself, with a clean recap waiting for your team.