DocuSign Pending Signature Reminders
On a schedule, the flow finds DocuSign envelopes that are sent but not completed past a threshold, sends reminders to outstanding recipients, escalates very stale envelopes to the sender's manager in Teams, and voids ones past an expiry. Keeps signature cycles moving and cleans up dead envelopes.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This flow keeps DocuSign signature cycles moving. On a daily schedule it lists envelopes still out for signature (status sent), computes each envelope's age, and routes it to one of three actions: remind outstanding recipients, escalate stale envelopes to a management Teams channel, or void envelopes past their expiry. A run digest is posted to Teams and emailed to operations.
Why it matters: deals and approvals stall while waiting on signatures. Automated reminders plus escalation shorten signature cycle time, and a gated auto-void keeps the DocuSign account free of dead envelopes - with no manual chasing.
Ships Off (demo). The destructive void step is gated behind a safety env var (off by default).
Use Case
Operations and sales-ops teams that send agreements through DocuSign want a hands-off way to nudge recipients who have not signed, surface envelopes that have gone stale so a manager can intervene, and automatically retire envelopes that will never complete - all from a single scheduled sweep, with every threshold configurable and a safety gate on the destructive void step.
Flow Architecture
Daily 09:00 Recurrence
RecurrenceDaily reminder sweep at 09:00 Eastern.
Initialize Run ID & Config
Initialize variable (x14)Mints a correlation id and binds account id, lookback days, the three age thresholds, reminder delay/frequency, the auto-void gate, voided reason, Teams group/channel, summary email, and digest title.
Initialize Counters
Initialize variable (x4)Reminder/escalate/void counters plus the HTML row accumulator for the digest.
Search Pending Envelopes
DocuSign - SearchListEnvelopesGets envelopes with status = sent within the lookback window.
For Each Envelope
Apply to each (concurrency 1)Evaluates and routes each pending envelope.
Compute Envelope Age
ComposeWhole days since dateSent.
Decide Action Type
Compose (nested if)VOID at/over expiry, else ESCALATE at/over stale, else REMINDER at/over reminder, else NONE.
Route by Action
SwitchREMINDER routes to DocuSign AddReminders; ESCALATE posts to the management Teams channel; VOID runs the gated DocuSign VoidEnvelope (only when Auto-Void Enabled is true, otherwise dry-run). Each branch increments its counter and appends a digest row.
Compose Digest HTML
ComposeBuilds the digest (counts plus a per-envelope table).
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_DocuSignAccountId | String | 00000000-0000-0000-0000-000000000000 | DocuSign API account ID whose envelopes are managed. Set this first. |
| flowlibs_EnvelopeLookbackDays | String | 60 | How far back to search for sent-but-incomplete envelopes. |
| flowlibs_ReminderThresholdDays | String | 3 | Age at which a reminder is sent. |
| flowlibs_StaleThresholdDays | String | 7 | Age at which an envelope is escalated to Teams. |
| flowlibs_ExpiryThresholdDays | String | 21 | Age at which an envelope is proposed or voided. |
| flowlibs_ReminderDelayDays | String | 0 | DocuSign reminderDelay (days after send before the first reminder). |
| flowlibs_ReminderFrequencyDays | String | 2 | DocuSign reminderFrequency (days between repeat reminders). |
| flowlibs_AutoVoidEnabled | String | false | Safety gate. true actually voids expired envelopes; false (default) only proposes them (dry-run). |
| flowlibs_VoidedReason | String | Auto-voided by FlowLibs: signature window expired |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| DocuSign | shared_docusign | SearchListEnvelopes AddReminders VoidEnvelope |
| Microsoft Teams | shared_teams | PostMessageToConversation |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Tune the cadence
- Adjust flowlibs_ReminderThresholdDays, flowlibs_StaleThresholdDays, and flowlibs_ExpiryThresholdDays to fit your signature SLA. Keep them increasing (reminder < stale < expiry).
- Enable real voids
- Flip flowlibs_AutoVoidEnabled to true once you trust the proposals; until then expired envelopes are only listed as VOID (proposed).
- Reminder behavior
- flowlibs_ReminderDelayDays and flowlibs_ReminderFrequencyDays map directly to DocuSign's reminder settings; keep frequency low to avoid over-nudging.
- True manager escalation
- To ping the sender's actual manager instead of the ops channel, add an Office 365 Users Get manager (V2) keyed on the envelope sender and @mention them.
- Record activity
- Drop a Dataverse CreateRecord (or SharePoint item) inside each Switch case to log every reminder/escalation/void for audit or Power BI.
- Alternate channels
- Swap or add Twilio SMS for high-priority envelopes.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Envelope age (days)
Whole days since the envelope was sent.
EXPR.02Action router
Chooses VOID / ESCALATE / REMINDER / NONE from the envelope age.
EXPR.03Lookback date for the search
Start of the search window.
EXPR.04Auto-void gate
True only when the safety gate env var is set to true.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.