Chase quiet signature requests without spamming signers

By General Input

See every unsigned document in one board, sorted by the money at risk, and send one grouped reminder per person instead of ten.

Integrations

  • DocuSeal
  • HubSpot
  • Slack Bot

Type

App

Categories

  • Sales
  • Operations

Build me an app that my revenue operations team opens every morning to chase signatures that have gone quiet. It is a working board, not an alerting workflow. Nothing runs on a schedule and nobody gets paged. A person opens the app, looks at what is stuck, and acts on it from the row.

The main screen is a board with three lanes, and every open signature request sits in exactly one of them. Never opened is a request that was sent but the signer has not viewed yet. Opened but not signed is one the signer viewed and then abandoned. Waiting on us is one where the counterparty has finished but somebody on our side still has not countersigned. Work that last lane out by checking whether the outstanding submitter's email is on our own company domain, and let me set that domain in a settings screen.

Each row shows the document name, who owes it (name and email), how many days it has been sitting, the date we last nudged that person, and the matching HubSpot deal's amount, stage, and owner. Default the sort to dollars at risk, highest first, never alphabetical. That ordering is the entire point of the board. Also let me sort by days sitting and filter by lane and by deal owner.

Pull the board from DocuSeal. Use List Submissions for everything still pending, Get Submission for a single request's submitters and their signing status, and List Submitters when you need to page through signers across many submissions. For the money columns, match each submission to a HubSpot deal with Search Deals, querying on the document or company name and falling back to the signer's email domain, then read amount, stage, close date, and owner id off the deal and resolve the owner's name and email with Get Owner. Cache the submission to deal mapping in the app's own storage so the board loads fast, and put a small "wrong deal?" control on each row that lets me search HubSpot and re-link it by hand. A remembered manual link always wins over the automatic match.

Row actions. Nudge re-sends the signing email through DocuSeal Update Submitter. Archive kills a dead request through Archive Submission, behind a confirm step, and drops it off the board. Ping the owner is for the waiting on us lane: take the HubSpot deal owner's email, find their Slack account with Look Up User by Email, get a direct message channel with Open a Conversation, and Send a Message telling them which document is sitting on them, how many days it has been, and what the deal is worth.

The nudge rules matter more than anything else in this app, so build them carefully. People already drown in reminder emails. A signer with fifteen outstanding documents receives fifteen separate reminders on fifteen different schedules and ends up filtering the whole lot into a folder they never open. So nudges are per person, never per document. Group every outstanding document by signer email, and when I nudge someone the app sends one consolidated re-send whose subject and body name every document that person owes, instead of firing a separate reminder for each one. Keep a nudge log in the app's own storage recording the signer's email, the timestamp, which documents were included, and which teammate clicked it. If that signer has already been nudged today, disable the button rather than hiding it, with hover text naming who nudged them and when. Show the last nudge date on every row, and give me a By signer view that groups all outstanding documents by person so I can see the full ask before I send it.

Add a Write the chase button on each row that kicks off a background agent. The agent reads the stuck request with Get Submission and List Submitters to see who has signed, who has not, and how long it has been sitting, then reads the matched HubSpot deal with Get Deal for stage, amount, close date, and recent activity, and looks up the signer's contact record with Search Contacts for extra context. From all of that it drafts a tailored follow-up addressed to the signer: short, specific about which document and why it matters now, and matched to the situation, because a never opened request needs a very different message from one that has been sitting half signed for three weeks. The draft posts back into the app against that signer rather than going anywhere near email. It appears in a side panel where the rep edits it and then sends it as the body of the nudge. Show the agent's progress while it runs, and keep previous drafts so the rep can compare them.

Finishing touches: a header strip showing total dollars at risk, the count in each lane, and how many signers are eligible to be nudged today. Flag rows that have been sitting longer than a threshold I set in settings, alongside the internal domain and the nudge cooldown length.

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 reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account