AddThisFeature

DocuSign Signature Request

Send documents for signature through DocuSign and track every recipient's state.

involved Integrations

What it adds

An envelope-based signing flow that sends app documents to DocuSign, mirrors recipient and envelope status, and stores the completed files.

What your agent is told to do

5
  1. 1

    Model the request in the app first: the document, the ordered recipients with their roles, and the envelope's own lifecycle state, so the app can answer where a signature stands without calling the provider.

  2. 2

    Prefer a configured template with named roles and named fields over positioning signature fields at fixed coordinates. Coordinates break the moment the document's layout or page count changes, and they break silently.

  3. 3

    Store the envelope identifier against the app record when the send is confirmed, and make sending idempotent on that record so a retry after a timeout resumes tracking rather than sending the customer a second copy.

  4. 4

    Verify every status callback's authenticity before acting on it, ignore callbacks for envelopes the app does not recognise, and treat repeated deliveries of the same status as one event because the provider will retry.

  5. 5

    Store completed documents and their audit certificates in the app's existing file storage behind the same permission checks as the record they belong to, and serve them through short-lived links rather than a permanent public URL.

Edge cases it handles

8
  • Recipients need roles, an explicit routing order, and any required identity verification set before the envelope is sent. Getting the order wrong sends the document to a counter-signer before the person whose signature it depends on.
  • Templates change. Role names and field names must be resolved against the current template and the send refused with a clear error when a role no longer exists, rather than sending an envelope with an unassigned signer.
  • Callbacks are unauthenticated until proven otherwise and arrive more than once, out of order, and sometimes long after the fact. Verify the signature, key on the envelope and event, and ignore a status older than the one already recorded.
  • Envelopes end in states other than completed: declined, voided, expired, and corrected all need a represented state in the app and a defined effect on whatever the signature was gating.
  • Signed documents and audit trails are among the most sensitive files the app holds. They must inherit the record's permissions, not be reachable by anyone with a link, and any temporary link must expire.
  • The provider will rate-limit and will occasionally be unavailable. Queue the send, back off, and show the user that the request is pending rather than reporting a signature request that was never actually created.
  • The stored authorization expires and must be refreshed before it lapses. A refresh failure should mark the connection as needing reconnection and pause sends, not fail each envelope individually with an unhelpful error.
  • If callbacks stop arriving, envelopes will sit at a stale status forever. Reconcile open envelopes on a schedule so status is eventually correct even when a webhook was lost.

Definition of done

9
  • The app holds its own record of the envelope, its recipients, and their states, readable without contacting the provider.
  • Signature placement uses templates with named roles and fields rather than fixed coordinates.
  • Sending is idempotent per record, so a retry after a timeout never produces a second envelope.
  • Status callbacks are authenticity-verified, deduplicated, and safe to receive out of order.
  • Declined, voided, expired, corrected, and completed envelopes each have a represented state and a defined consequence.
  • Completed documents and audit certificates are permission-checked and served through expiring links.
  • A scheduled reconciliation corrects any envelope whose callback was lost.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.