See why your agreements take so long to get signed
A dashboard that measures how many days your contracts really take to sign, ranks the counterparties who always need chasing, and explains every stall.
Build me a signature turnaround desk on top of Documenso. The point of this app is not to list what is outstanding, it is to answer why our agreements take so long to get signed and whether we are getting faster over time. Treat it as a measurement and diagnosis surface, not a reminder tool.
Data loading. A handler should page through every envelope with Find Envelopes and, for each one, reconstruct its timeline from Get Envelope Audit Logs: when it was actually distributed, when each recipient first viewed it, when each recipient signed, and when it reached completed. Use Get Envelope for title, type, owner and status, and Get Envelope Recipient for per recipient timestamps, signing order position and signing status. Store the reconstructed timeline per envelope in app storage so the views render from cached results rather than re-reading the whole history on every load. Give me a Refresh control, refresh envelopes that are still pending more eagerly than ones already completed or cancelled, and handle Documenso rate limits by backing off rather than failing the whole load.
View one, turnaround trends. This is the home view. Show median days and worst case days (both 90th percentile and maximum) from distribution to fully signed, with breakdowns by document type, by sending owner and by month. Critically, every comparison is period over period: the current period sits next to the previous equal length period with the change shown, so improvement is visible rather than just a snapshot. Let me switch the period between month, quarter and a custom range. Time to sign must start at the distribute event in the audit log rather than envelope creation, and drafts that were never distributed are excluded from all cycle time maths. Cancelled and rejected envelopes are excluded from completion medians but reported separately as their own counts so they are not silently dropped.
View two, slowest signers. Rank the people we send to by how long they typically take to act. For each recipient, derive time to act as the gap between when their invite became actionable and when they signed, using the per recipient timestamps from Get Envelope Recipient plus the audit log entries. Show median time to act, worst case, the number of envelopes they appear on, how many times they were resent an invite, and how many envelopes they never actioned at all. Sort slowest first and let me set a minimum envelope count so one-off recipients do not top the list. Clicking a recipient shows the individual envelopes behind their number.
View three, current bottlenecks. Every pending agreement ordered by days since it went out, longest first. Columns: title, document type, sending owner, days outstanding, the recipient the signing order is currently stuck on (the earliest unsigned recipient in sequence), that recipient's last recorded activity from the audit log, and a stale flag when days outstanding exceeds a configurable threshold. This is the working list, so it needs to be dense and scannable.
Embedded agent. Each stuck row has an Explain this stall button that kicks off a background agent for that single envelope. The agent pulls Get Envelope, Get Envelope Recipient for every recipient, and the full Get Envelope Audit Logs, then reconstructs the sequence into plain English: opened four times but never signed, the invite email bounced, still waiting on an earlier signer in the order, viewed once on day one and never again. It writes back into the app both that explanation and a recommended next step (resend the invite, call them directly, replace the signer, cancel and reissue). Save the result keyed to the envelope with a timestamp, show a running state on the row while it works, render the explanation inline and expandable once it lands, and let me re-run it later on the same row.
Actions from any row. Nudge with Redistribute Envelope behind a confirmation, kill a dead agreement with Cancel Envelope behind a confirmation that captures a reason, and share the week's summary to our ops channel with the Slack Bot Send a Message action. The Slack summary should carry the headline turnaround numbers, the period over period change, and the top stalled agreements with their agent explanations, formatted for reading in a channel rather than as a raw data dump. Refresh the affected envelope after a redistribute or cancel so the list reflects reality immediately.
Settings and persistence. A settings area holds the stale threshold in days (default seven), the comparison period length, the minimum envelope count for the slowest signer ranking, how document types are derived (title keyword rules or folder), and the default Slack channel. Persist settings and saved stall explanations in app storage so they survive reloads and are shared by everyone who opens the dashboard.
Design. Dense but legible tables, clear trend indicators for the period over period deltas, and honest empty states when there is not enough completed history yet to compute a median. Make it obvious at a glance whether turnaround improved or worsened this period.
What does this prompt do?
- Rebuilds the full history of every document you have sent for signature, then shows your typical and worst case days from sending to fully signed, split by document type, by the person who sent it and by month
- Compares this period against the one before it, so you can see whether your team is actually getting faster instead of only seeing today's snapshot
- Ranks the people you send to by how long they usually take to act, so you know which counterparties reliably need a nudge
- Lists every agreement still waiting, oldest first, and names the exact signer the document is stuck on
- Gives each stuck row an Explain this stall button that hands the document to an assistant, which reads the full signing history and writes back a plain English explanation plus a recommended next step
- Lets you resend an invite, cancel a dead agreement, or post the week's summary to your ops channel without leaving the page
What do I need to use this?
- A Documenso account you can create an API token in, with the documents you want to measure
- A Slack workspace and a channel to post weekly summaries to, if you want the sharing button (optional)
- A rough idea of how many days is too long for an agreement to sit unsigned, so you can set the stale threshold
How can I customize it?
- Change the stale threshold so agreements get flagged after the number of days that matches your business
- Switch the comparison period between month, quarter and custom date ranges depending on how you report to leadership
- Decide how document types are grouped, for example by title keyword or folder, so the breakdown matches your contract categories
- Set the minimum number of documents a person needs before they appear on the slowest signer ranking
- Pick which Slack channel the weekly summary goes to
FAQs
How do you calculate time to sign?
How is this different from the pending list Documenso already shows me?
Does it chase people automatically?
What does the Explain this stall button actually do?
Will it slow down if we send hundreds of documents?
Can several people on my team use it?
Related templates
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.
A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.
Stop guessing why contracts sit unsigned.
Turn your signing history into a turnaround report that shows what is slow, who is slow, and what to do about it.