Skip to content

E-Signature Integrations

CaseSolo supports live DocuSign and Adobe Acrobat Sign flows for launch integration work.

Provider Coverage

DocuSign implementation:

Adobe Acrobat Sign implementation:

Both providers support OAuth, token refresh, live send/create actions, status reads, cancellation/voiding, reminders or resend, template listing, embedded signing links, webhook processing, and signed-document download.

Signed Document Capture

Completed provider webhooks now call captureSignedProviderDocument() from src/lib/integrations/e-signature-document-capture.ts.

The capture flow:

  1. Download the combined signed PDF from the provider.
  2. Upload the PDF to R2 with uploadObject().
  3. Create a CaseSolo Document record with uploadStatus: completed and uploadFlow: provider_signed_document.
  4. Attach provider metadata such as provider, providerRecordId, status, and signed timestamp.
  5. Write an activity event such as docusign_signed_document_captured or adobe_sign_signed_document_captured.
  6. Mark any existing retry record for the provider envelope/agreement as completed.

DocuSign envelopes include hidden custom fields for casesolo_firmId, casesolo_userId, and optional casesolo_caseId. Adobe agreements include a CaseSolo externalId in the format casesolo:{firmId}:{caseId|general}:{userId}. These fields let webhook processing attach signed documents back to the right case and user where the provider includes the metadata.

Retry Records

If download, R2 upload, or document creation fails, the helper stores a retry record in firm.settings.eSignatureDocumentCaptureRetries.

Retry fields include:

The current retry queue is intentionally metadata-backed for the launch slice so failed webhook captures are not lost. A later worker can replay pending records using the provider ID and provider record ID.

Provider References

Launch Gate

Before launch, this slice must keep passing:

Source: docs/dev/e-signature-integrations.md