See why your agreements take so long to get signed

By General Input

A dashboard that measures how many days your contracts really take to sign, ranks the counterparties who always need chasing, and explains every stall.

Integrations

  • Documenso
  • Slack Bot

Type

App

Categories

  • Operations

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.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them