DocuSign
E-signature integration for document signing workflows. Used for signing renovation contracts, funding documents, and other legal paperwork within Projects.
Architecture
| Component | Path |
|---|---|
| API Client | backend/src/lib/docusign-client.ts |
| Service | backend/src/services/docusign-service.ts |
| Routes | backend/src/routes/docusign/ |
Database Tables
| Table | Purpose |
|---|---|
signatureRequests | Tracks signing envelopes sent to signers |
signedDocuments | Stores signed document references |
signedDocumentsMetadata | Metadata for signed documents (timestamps, signers) |
Authentication
OAuth 2.0 authorization code flow:
- User initiates DocuSign connection from admin settings
- OAuth redirect to DocuSign consent screen
- Callback stores encrypted access/refresh tokens in database
- Automatic token refresh before expiry
Tokens are encrypted at rest using ENCRYPTION_MASTER_KEY via backend/src/lib/encryption.ts. See Library Utilities.
Signing Workflow
- System generates a PDF Templates document for the Projects context
- Creates a DocuSign envelope with document + signer info from Contacts
- Sends envelope to signer(s) via DocuSign
- DocuSign webhook notifies on status changes (viewed, signed, declined)
- Signed document is stored in Files storage
Related
- PDF Templates — Documents sent for signing
- Documents — Document management domain
- Files — Signed document storage
- External Integrations — Integration overview
- Backend Architecture — Service layer integration
- Contacts — Signer contact information