Every 15 minutes
Know when a DocuSign envelope is opened or declined
I see when a recipient opens a contract and when someone declines it.
- Runs
- Every 15 minutes
- Apps
- DocuSign
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every 15 minutes, check DocuSign for envelopes that changed to delivered or declined and post each one to #contracts in Slack with the recipient and the decline reason if there is one.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
When a customer opens a contract but does not sign, or declines it with a comment, the sender usually learns nothing until they check DocuSign. A declined envelope is a signal that the deal needs attention right away: a clause the customer dislikes, the wrong signer or a pricing objection. Left for two days, the reasons are forgotten and the deal goes cold. An opened but unsigned envelope is also a good moment for a friendly call.
Every 15 minutes the automation lists envelopes that changed, keeps those marked delivered or declined, and tells you which contract and which recipient. You find out about interest or an objection the same afternoon, while the customer is still thinking about it.
Sales reps, account executives and contract managers who follow up on every envelope get the most from it.
What you get out of it
Follow up while interest is warm
Knowing a customer just opened the contract lets a rep send a short, well-timed message. A prompt reply at that moment often turns reading into signing, before the customer gets distracted by something else.
Objections handled quickly
A decline shows up within minutes, so someone can ask what is wrong and offer a fix. Resolving it the same day keeps the deal from going cold and usually costs a single phone call.
Wrong-signer problems found early
If an envelope is declined because it went to the wrong person, you can correct and resend it at once. That avoids days lost in a loop that nobody knew about until the quarter was nearly over.
Better insight into deal momentum
A pattern of contracts opened but not signed tells managers where the process is leaking, such as pricing pages or terms that confuse customers. Those patterns are invisible when each envelope is checked alone.
No need to check each envelope
Reps with many contracts out at once cannot watch each one. They get a short alert for the ones that need action and ignore the rest, which keeps attention on deals that are actually moving.
How it works
What happens, step by step
Every 15 minutes, ClickRuntime checks DocuSign for envelopes that were opened or declined since its last check.
For each one it collects the document name, the signers' emails and any reason given for declining.
It posts to #contracts in Slack saying Delivered or Declined, with the document, the people involved and the reason if there is one.
Before it runs live
- Connect DocuSign
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other DocuSign steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timezone
from clickruntime import on_trigger, state_initializer, credentials, notify, http, state, report_fetched
BASE = "https://na3.docusign.net/restapi/v2.1/accounts/YOUR_ACCOUNT_ID"
@state_initializer
def init():
state.set("since", datetime.now(timezone.utc).isoformat())
@on_trigger
def run(event):
now = datetime.now(timezone.utc).isoformat()
resp = http.get(f"{BASE}/envelopes",
headers={"Authorization": f"Bearer {credentials.connection('docusign', 'work')}"},
params={"from_date": state.get("since"), "status": "delivered,declined", "include": "recipients"})
resp.raise_for_status()
envelopes = resp.json().get("envelopes") or []
report_fetched(len(envelopes))
if not envelopes:
return {"posted": 0}
for env in envelopes:
signers = env.get("recipients", {}).get("signers", [])
who = ", ".join(s["email"] for s in signers)
reason = next((s["declinedReason"] for s in signers if s.get("declinedReason")), "")
text = f"{env['status'].title()}: {env['emailSubject']} ({who})"
notify.slack(text + (f"\nReason: {reason}" if reason else ""), channel="#contracts")
state.set("since", now)
return {"posted": len(envelopes)}FAQ
Common questions
What is the difference between delivered and completed?
Will I be told the reason for a decline?
Can I get these alerts only for high-value contracts?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Hear in Slack when a DocuSign contract is fully signed
Once every signer has finished, the channel gets the document name and who signed.
See how it worksGet a daily list of unsigned DocuSign envelopes
Each morning I know which contracts have been waiting on a signature for more than 3 days.
See how it worksSee new job listings as they're posted
Jobs that match your keywords show up in a Slack channel, each one only once.
See how it worksKeep exploring
Set up “Know when a DocuSign envelope is opened or declined” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.