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 ↗