Smarter Signature Chasing: Automatic Resend for Expired Requests
Smarter Signature Chasing: Automatic Resend for Expired Requests
Version introduced: v0.1.378
Deposit deduction sign-offs and tenancy documents depend on every party actually signing. Until now, if a signature request expired — because a tenant didn't act within 7 days — the document simply stopped progressing. An agent had to notice the failure manually, navigate to the Signatures dashboard, and click Resend for every affected request.
From v0.1.378 onwards, the system handles the first retry automatically.
How It Works
1. The expiry sweep detects a first-attempt expiry
The signature-expiry-sweep background job (powered by Inngest) runs on a schedule and scans all outstanding signature requests. When it finds one that has passed its deadline:
- It checks whether the associated tenancy is still active.
- It checks whether an auto-resend has already been attempted (via the
autoResentAttimestamp column).
If the tenancy is active and no prior auto-resend has been recorded, the sweep issues a fresh signature request automatically.
2. A fresh 14-day link is issued
The replacement link is valid for 14 days — double the original 7-day window — to give signatories more opportunity to complete the action.
The autoResentAt column is stamped at the moment of resend, making the operation idempotent: repeated sweep runs will not issue duplicate requests.
3. Second expiry triggers an agent notification
If the 14-day replacement link also expires without a signature, the system escalates: an agent notification is fired so a human can intervene directly. Agents are only alerted when automated recovery has already been attempted and failed.
Behaviour Summary
Signature request expires (attempt 1)
│
├─ Tenancy inactive? ──► No action taken
│
└─ Tenancy active?
│
└─ autoResentAt already set? ──► Skip (idempotent)
│
└─ Not yet set?
│
└─ Issue fresh 14-day link
Stamp autoResentAt
│
└─ Second attempt also expires?
│
└─ Fire agent notification
What Agents See
- No change to the Signatures dashboard UI. The manual Resend button remains available and works exactly as before for cases where agents want to intervene ahead of the automated retry.
- Fewer routine notifications. Agents will no longer receive alerts for every first-attempt expiry — only for second-attempt expiries where human action is genuinely required.
- Audit trail preserved. The
autoResentAttimestamp is stored against each signature request, so the history of automated retries is visible in the data.
Edge Cases
| Situation | Outcome |
|---|---|
| Agent manually resends before sweep runs | Sweep detects autoResentAt is already set and skips — no duplicate |
| Tenancy ends between first expiry and sweep run | No auto-resend issued |
| Declined requests (not just expired) | Same logic applies — first decline triggers auto-resend; second triggers notification |
Background
This change was motivated by a recurring operational pattern: critical documents (deposit deduction schedules, check-out reports) going unsigned for days or weeks because no one noticed the expired request. The Signatures dashboard showed the failure state, but only if an agent happened to look. The auto-resend mechanic eliminates that blind spot without adding noise — agents are only paged when it matters.