# Send contracts and watch them close from one deal desk

> See every closing deal beside its contract, let an assistant prepare the paperwork, and send it for signature only after you have checked the numbers.

- Workflow type: app
- Services: Documenso, HubSpot, Slack Bot
- Categories: Sales
- Published: 2026-08-21

## What it does

- Lists every late stage deal with its amount, owner and close date, and shows at a glance whether it has no contract yet, is out for signature, or is already signed.
- For contracts still waiting, shows how many days they have been out and whose signature is holding everything up.
- Prepares the paperwork for you: an assistant reads the deal and its main contact, picks the right template and fills in a draft, then shows the draft amount beside the deal amount so a wrong number never reaches the customer.
- Send, nudge and cancel from the same row, and every signed contract is logged as a note on the deal and announced in your deal desk channel.

## What you'll need

- A Documenso account holding the contract templates your team already uses
- A HubSpot login with access to the deals your reps work
- A Slack workspace with a deal desk channel to post into
- The names of the pipeline stages you treat as late stage, so the board knows which deals to show

## Prompt

I want a deal desk app for my sales reps. They should be able to send contracts out for signature and watch them close without ever opening Documenso directly.

The main screen is a board of late stage deals. Pull them from HubSpot with Search Deals, filtered to the pipeline stages I treat as closing stages, and show each deal's name, amount, owner and close date. Let me choose which stages count as closing during setup by reading the available stages with List Pipelines, so the board matches how my team actually sells.

Join every deal to its Documenso agreement. Load agreements with Find Envelopes and give each row exactly one of three states: no contract yet, out for signature, or signed. For rows that are out for signature, show how many days the agreement has been waiting and the name of the recipient everyone is blocked on. Read the envelope's status and recipient list with Get Envelope, and the individual recipient's signing status with Get Envelope Recipient. When the app creates an agreement for a deal, store the deal id against the envelope id in app storage so the join is exact from then on. For agreements that already existed before the app, fall back to matching the envelope title against the deal name.

Selecting a deal that has no contract yet shows a Prepare contract button that kicks off a background agent. The agent reads the deal's properties, finds the deal's associated contact with Search Contacts, looks through the available templates with Find Envelopes filtered to templates, picks the one that matches the deal, and creates the agreement with Use Envelope Template, prefilling the recipient and every field value it can derive from the deal and the contact. It must leave the envelope as a draft. When it finishes, it writes back into the app a summary of what it filled in, field by field, and the app shows that summary on the deal's detail panel so the rep can check the numbers before anything goes out.

The agent must never distribute an envelope. That is a hard rule. A draft envelope sends no email to anyone until it is distributed, so the review step is free and every send stays a deliberate human action. On the draft review panel, show the contract amount the agent filled in directly next to the deal amount from HubSpot, and flag it prominently when the two do not match, so a wrong number is caught before the customer ever sees it.

The rep sends by pressing Send on the reviewed draft, which calls Distribute Envelope, and the row moves to out for signature. Rows that have been waiting longer than a threshold I can configure get flagged as stalled and show a Nudge button that calls Redistribute Envelope to resend the signing invite to whoever has not yet signed. Any row can be killed with a Cancel button that calls Cancel Envelope.

When an agreement comes back signed, write a note onto the HubSpot deal with Create Note recording that the contract was signed, when, and by whom, and post to our deal desk channel with the Slack Send a Message action. The app has no schedule, so detect this on refresh: when the board loads and finds an agreement that has become complete and has not been logged yet, do the note and the Slack post then, and persist a marker so it fires exactly once per agreement and never repeats on the next refresh. Let me pick the deal desk channel during setup using List Channels.

Reps should see only the deals they own by default, matched on the deal owner, with a toggle that switches the board to the whole team so a manager can see everything. Remember each person's choice of that toggle.

## How to customize

- Choose which pipeline stages count as closing, so the board matches how your team actually sells.
- Change how many days a contract can sit before it is flagged as stalled and offers a nudge button.
- Pick which channel hears about signed contracts, and whether reps land on their own deals or the whole team's by default.

## FAQ

### Will the assistant ever send a contract to a customer on its own?

No. It only ever prepares a draft. Nothing leaves your account until a person reviews it and presses Send, and a draft sends no email to anyone, so the review step costs you nothing.

### Can reps see each other's deals?

By default everyone sees only the deals they own. There is a toggle to switch to the whole team's view when a manager wants the full pipeline picture.

### What happens if the contract amount does not match the deal?

The draft amount is shown right next to the deal amount on the same screen and a mismatch is flagged, so you catch it before sending. You can correct the deal or redo the draft first.

### Do my reps need their own Documenso login?

No, and that is the point. Preparing, checking, sending, chasing and cancelling all happen on this board, so reps never open the signature tool at all.

### What happens when a contract goes stale?

Rows waiting longer than your threshold get flagged as stalled and show a nudge button that resends the signing invite to whoever has not signed yet. Deals that are dead can be cancelled from the same row.

### How does the team find out when something is signed?

As soon as the board sees a contract come back signed, it writes a note on the deal in your CRM and posts to your deal desk channel, once per contract.

Use this prompt in General Input: https://www.generalinput.com/prompts/send-contracts-and-watch-them-close-from-one-deal-desk