Migrating Data from DocuSign
Automatically sync and import envelopes (DocuSign's term for signing requests) from DocuSign into Propper Sign using DocuSign Connect webhooks. This allows you to maintain a complete record of all your signed documents in one place during and after migration.
What: Keep your DocuSign documents synced to Propper during (and after) migration.
How it works: DocuSign sends automatic notifications to Propper whenever a document is signed, declined, or voided. Propper receives these notifications and imports the documents.
Why use this: You get a complete record of all signatures in Propper without manual effort, and existing DocuSign workflows continue working during your transition.
- Migrating from DocuSign - Full API migration guide for moving your integration to Propper
- Sign Webhooks - Configure outgoing webhooks from Propper Sign
- Templates - Create reusable signing templates
What This Integration Does
DocuSign Connect sends real-time notifications (webhooks) to Propper whenever something happens to a signing request. Propper uses these notifications to:
| Capability | What It Means |
|---|---|
| Sync agreement status | Automatically update status as documents move through the signing process (sent → delivered → completed / declined / voided) |
| Import signed documents | Store final signed PDFs and audit certificates in Propper—no manual downloads needed |
| Track recipient progress | See when each signer receives, views, signs, or declines the document |
| Maintain audit trail | Keep a complete log of all events for compliance and troubleshooting |
Webhook delivery "success" (HTTP 200) means Propper received the event, not necessarily that document import succeeded. Always check the webhook logs for actual processing status. See Monitoring & Retries below.
Prerequisites
Before setting up DocuSign Connect, you'll need:
- DocuSign Admin access - Administrator privileges in your DocuSign account
- Propper Sign access - Sign admin permissions in your Propper organization
- DocuSign Connect feature - Must be enabled for your DocuSign account (availability depends on your plan)
Quick Start
Step 1: Enable DocuSign Connect in Propper
- Navigate to Organization → DocuSign Connect in Propper
- Copy your unique webhook URL (displayed on the settings page)
- Choose security method:
- HMAC (recommended), or
- Basic Auth (fallback)
- Enable Auto-Import (recommended for migrations)
- Click Save Configuration
Step 2: Configure DocuSign Connect
- In DocuSign Admin ↗: Integrations → Connect
- Click Add Configuration → Custom
- Paste the Propper webhook URL
- Select JSON SIM format (DocuSign's modern JSON format - required, not legacy XML)
- Select events (see Recommended Configuration below)
- Configure security (HMAC or Basic Auth)
- Enable:
- ✅ Require Acknowledgement
- ✅ Log failures with Connect
Step 3: Test
- Send a test envelope in DocuSign (use sandbox if available)
- Complete the signing process
- In Propper: Organization → DocuSign Connect → Recent Activity
- Confirm:
- Event received with "Completed" status
- Agreement created with document attached (if Auto-Import enabled)
Recommended Configuration (Production)
Event Selection
Envelope events (agreement-level status):
| Event | Purpose | Required? |
|---|---|---|
| Envelope Sent | Track when envelopes are sent for signature | Recommended |
| Envelope Delivered | Know when all recipients have received the envelope | Recommended |
| Envelope Completed | Import completed/signed documents | Required |
| Envelope Declined | Track declined envelopes | Recommended |
| Envelope Voided | Track cancelled envelopes | Recommended |
Recipient events (signer-level visibility):
| Event | Purpose |
|---|---|
| Recipient Delivered | Track when each signer receives the envelope |
| Recipient Completed | Track when each signer completes signing |
| Recipient Declined | Track when a specific signer declines |
If you only want to import final signed PDFs, start with Envelope Completed only and expand later.
Data Options (Minimize Payload Size)
| Option | Recommendation | Notes |
|---|---|---|
| Include Recipients | ✅ Recommended | Required for recipient status tracking |
| Include Certificate of Completion | ✅ Recommended | Stores DocuSign's audit certificate in Propper |
| Include Documents | ⚠️ Use carefully | Required for PDF import, but significantly increases payload size |
Including documents makes payloads huge (Base64-encoded PDFs). For production:
- Send status-only events for Sent/Delivered/Declined/Voided
- Send documents only for Completed events
This reduces payload size, latency, and failure rate. Configure this in DocuSign Connect's event notification settings.
Security Configuration
Option A: HMAC Authentication (Recommended)
DocuSign signs webhook payloads using an HMAC key you generate in Connect. Propper verifies that signature before processing.
Setup:
- In DocuSign Connect: scroll to HMAC Authentication
- Click Generate Secret Key (this is your "Connect Key")
- Copy the generated key
- Paste into Propper's HMAC Secret field
- Save both configurations
Validation Gotchas (Common Failures):
| Issue | Solution |
|---|---|
| Secret mismatch | Ensure exact match - no extra whitespace |
| Wrong validation method | Validate against raw request body bytes (before JSON parsing) |
| Header casing | Use exact header: X-DocuSign-Signature-1 |
| Multiple signatures | DocuSign may send multiple signature headers - validate against at least one |
DocuSign uses HMAC-SHA256. The signature is computed over the exact raw bytes of the request body, not the parsed JSON. Ensure your validation doesn't modify the body before verification.
Option B: Basic Authentication (Fallback)
Use if HMAC is not available in your DocuSign plan:
- In Propper: enable Require Basic Authentication and set credentials
- In DocuSign Connect: scroll to Require Mutual TLS (mTLS) or Basic Authentication
- Check Require Basic Authentication
- Enter the same username and password
How Propper Processes Events
Processing Flow
DocuSign → Propper Webhook → Verify Auth → Log Event → Queue Processing → Update/Import
- Receive - Webhook arrives at your organization's endpoint
- Verify - HMAC signature and/or Basic Auth credentials verified
- Log - Event recorded in webhook logs (always, even if processing fails later)
- Queue - Event queued for async processing
- Process - Agreement status updated and/or documents imported
- Complete - Processing status updated in logs
Delivery vs Processing
Understanding the difference is critical for troubleshooting:
| Term | Meaning |
|---|---|
| Delivery Success (HTTP 200) | Propper received and accepted the webhook for processing |
| Processing Success | Agreement was updated and/or documents were imported |
Propper returns HTTP 200 once the event is accepted (logged and queued), even if downstream processing fails. This follows DocuSign's recommended async pattern ↗ and prevents duplicate deliveries.
If processing fails:
- Check the webhook log entry for error details
- Use Propper's retry mechanism (coming soon) or contact support
- DocuSign will NOT automatically retry since we returned 200
Envelope Status Mapping
Agreement status in Propper follows DocuSign envelope status (not recipient status):
| DocuSign Envelope Status | Propper Agreement Status |
|---|---|
created | CREATED |
sent | SENT |
delivered | DELIVERED |
completed | COMPLETED |
declined | DECLINED |
voided | VOIDED |
Recipient Status (Signer Progress)
Recipient events track individual signer progress and are stored separately from the agreement status:
| DocuSign Recipient Event | What It Means |
|---|---|
recipient-sent | Envelope sent to this recipient |
recipient-delivered | Recipient received/opened the envelope |
recipient-completed | Recipient finished all required actions |
recipient-declined | Recipient declined to sign |
The agreement status in Propper always reflects the envelope status from DocuSign. Recipient events provide granular signer-level visibility but don't directly change the agreement's final status.
Monitoring and Troubleshooting
Open DocuSign Connect Dashboard →
See all incoming webhooks, their processing status, and detailed payloads in real-time.
Viewing Webhook Logs
From the DocuSign Connect dashboard:
- Scroll to Recent Activity
- Click any row to view full details including the raw payload
Each log entry shows:
| Field | Description |
|---|---|
| Envelope ID | DocuSign envelope identifier |
| Event Type | What triggered the webhook |
| Status | Processing result (Completed, Failed, Rejected) |
| HMAC Verified | Whether signature verification passed |
| Agreement ID | Linked Propper agreement (if matched/created) |
| Received At | When the webhook arrived |
DocuSign Retry Behavior
With Require Acknowledgement enabled, DocuSign:
- Waits up to ~100 seconds for HTTP 200 before treating delivery as failed
- Uses exponential backoff for retries when delivery fails
- Logs all delivery attempts in DocuSign Admin → Connect → Logs
Common Issues
Webhooks Not Arriving
| Check | Action |
|---|---|
| Connect status | Ensure configuration is Active in DocuSign Admin ↗ |
| URL match | Verify URL in DocuSign matches the one shown on your DocuSign Connect settings page |
| DocuSign logs | View delivery attempts in DocuSign Admin → Connect → Logs |
| Response time | Ensure your endpoint responds within 100 seconds (timeouts are common with large payloads) |
HMAC Verification Failing
| Check | Action |
|---|---|
| Secret mismatch | Copy/paste fresh - check for whitespace |
| Validation method | Must validate raw bytes, not parsed JSON |
| Header name | Use X-DocuSign-Signature-1 (case-sensitive) |
Documents Not Importing
| Check | Action |
|---|---|
| Include Documents | Must be enabled in DocuSign Connect |
| Auto-Import | Must be enabled in Propper settings |
| Payload timeout | Large documents may cause timeouts - consider "documents only on completed" |
| Storage quota | Check organization has available storage |
Status Not Updating
| Check | Action |
|---|---|
| Event selection | Ensure relevant envelope events are selected |
| Agreement exists | For updates, the agreement must already exist in Propper |
| Envelope ID | Must match between DocuSign and Propper |
Importing Historical Envelopes
After setting up DocuSign Connect for real-time sync, import your existing completed envelopes using DocuSign's publish features.
Option 1: Admin UI Publish (Simple)
Best for: Small to medium volumes, one-time imports
- Go to apps.docusign.com/admin/envelopes/publish ↗
- Select your Propper Connect configuration
- Set date range and filter by status (e.g., Completed only)
- Click Select All then Publish
Option 2: API Publish (Large Migrations)
Best for: Large volumes, automated/scheduled imports
DocuSign provides Envelope Publish API endpoints ↗ for programmatic bulk publishing.
Rate Limits:
- Historical publish transactions: ~9,999 envelopes/hour
- Batch by date range to stay within limits
- Run during off-peak hours
Resources:
- DocuSign Bulk Publish Walkthrough ↗ - Developer blog guide
- Envelope Publish API Reference ↗
Best Practices for Bulk Import
| Practice | Why |
|---|---|
| Test with small batch first | Verify setup with 5-10 envelopes before full import |
| Monitor webhook logs | Watch for failed or rejected events |
| Batch by date range | Stay within rate limits, easier to track progress |
| Import during off-peak hours | Reduce impact on production traffic |
| Verify sample agreements | Spot-check imported documents in Propper Sign |
Migration Playbook
Follow these phases for a complete migration from DocuSign to Propper:
Phase 1: Setup
- Configure DocuSign Connect in Propper
- Create Connect configuration in DocuSign
- Configure HMAC security
- Test with a single envelope
Phase 2: Historical Import
- Plan import batches by date range
- Import historical completed envelopes
- Monitor webhook logs for failures
- Retry any failed imports
Phase 3: Verification
- Sample 5-10% of imported agreements
- Verify documents are attached correctly
- Confirm status mapping is accurate
Phase 4: Cutover
- Begin creating new agreements in Propper Sign
- Keep DocuSign Connect active for any remaining DocuSign envelopes
- Monitor both systems during transition period
API Reference
Webhook Endpoint
Your organization's unique webhook URL is displayed on the DocuSign Connect settings page.
Headers:
| Header | Description |
|---|---|
X-DocuSign-Signature-1 | HMAC-SHA256 signature (if configured) |
Authorization | Basic auth credentials (if configured) |
Content-Type | application/json |
Response:
{
"received": true,
"requestId": "uuid",
"success": true,
"logId": "uuid",
"agreementId": "uuid",
"isNewImport": true
}
| Field | Description |
|---|---|
received | Always true if webhook was accepted |
success | Whether initial processing succeeded |
logId | ID of the webhook log entry (use to check processing status) |
agreementId | ID of created/updated agreement (if applicable) |
isNewImport | true if a new agreement was created |
Next Steps
Propper Documentation
- Migrating from DocuSign - Full API migration guide
- Sign Webhooks - Propper's outgoing webhooks
- Templates - Create signing templates
- Propper Dashboard - Access your organization
DocuSign Documentation ↗
- DocuSign Connect Overview ↗ - Official Connect documentation
- JSON SIM Format ↗ - Webhook payload format reference
- Connect Configuration Guide ↗ - Step-by-step setup in DocuSign Admin
- Publish Envelopes ↗ - Republish historical envelopes
- Connect Event Triggers ↗ - Complete list of events
- HMAC Security ↗ - HMAC signature verification