Linking DocuSign as a source
Let AI connect your sources for you
Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Contents
This source is currently in alpha. The interface and available tables may change.
The DocuSign connector syncs your e-signature data — envelopes, recipients, documents, templates, users, and folders — into the PostHog data warehouse. This lets you analyze contract and sales cycle activity alongside your product data.
Prerequisites
You need a DocuSign account and an integration key created in DocuSign Apps and Keys.
For JWT grant authentication (recommended), you also need to:
- Add an RSA key pair to your integration key.
- Grant one-time consent for the user you want to impersonate.
Note: Production integration keys must pass DocuSign's go-live review before they work outside the demo environment.
Adding a data source
- In PostHog, go to the Sources tab of the data pipeline section.
- Click + New source and click Link next to this source.
- Enter your credentials (see Configuration below) and click Next.
- Select the tables you want to sync, choose a sync method and frequency, then click Import.
Once the syncs are complete, you can start querying this data in PostHog.
When linking DocuSign, you'll need to configure:
Environment – select Production for live accounts or Demo (sandbox) for testing. Production keys require go-live approval from DocuSign.
Authentication type – choose one of the following:
JWT grant (recommended)
- Integration key – your app's UUID from DocuSign Apps and Keys.
- Impersonated user ID – the API user ID (UUID) of the user to impersonate. Find this under Apps and Keys → My Account Information.
- RSA private key – the full PEM key including the
-----BEGIN RSA PRIVATE KEY-----and-----END RSA PRIVATE KEY-----lines.
Refresh token
- Integration key – your app's UUID from DocuSign Apps and Keys.
- Secret key – your app's secret key.
- Refresh token – a valid refresh token obtained through DocuSign's OAuth flow.
Optional fields
- Account ID – leave blank to use your default account. Only needed if the impersonated user has access to multiple DocuSign accounts and you want to sync a non-default one.
- Start date – how far back to sync. Defaults to the last 2 years. Use ISO 8601 format, e.g.
2023-01-01T00:00:00Z.
Sync modes
Each table can be synced in one of several modes, depending on what the source supports:
- Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
- Incremental – only new or updated rows are synced on each run, using a cursor field (such as an
updated_attimestamp). Cheaper than a full refresh, but deletes aren't captured. - Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
- Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.
See sync methods for a full explanation of how each mode works and how to choose between them.
Envelope-based tables (envelopes, envelope_recipients, envelope_documents) and templates support incremental syncing. The users and folders tables always perform a full refresh since DocuSign does not support server-side date filtering for these resources.
Interrupted syncs resume from where they left off.
Configuration
| Option | Type | Required |
|---|---|---|
Environment | select | Yes |
Authentication type | select | Yes |
Account ID | text | No |
Start date | text | No |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
envelopes | Envelopes sent from the account — the container that holds the documents, recipients, and signing status for one agreement. | Incremental, Full refresh | statusChangedDateTime | — |
envelope_recipients | One row per recipient on each envelope, flattened from the per-role recipient buckets (signers, carbon copies, agents, certified deliveries, and so on). | Incremental, Full refresh | envelopeStatusChangedDateTime | — |
envelope_documents | Metadata for each document attached to an envelope. Document content itself is not synced. | Incremental, Full refresh | envelopeStatusChangedDateTime | — |
templates | Reusable envelope templates defined on the account. | Incremental, Full refresh | lastModified | — |
users | Users belonging to the DocuSign account. | Full refresh | — | — |
folders | Folders used to organize envelopes and templates on the account. | Full refresh | — | — |
Troubleshooting
consent_required
DocuSign needs one-time consent for the integration key. Grant consent for the impersonated user by visiting the consent URL for your app, then reconnect.
invalid_grant
DocuSign rejected the credentials. Check the integration key, the impersonated user ID, and that the key is authorized for the selected environment.
unauthorized_client
The integration key is not authorized for the selected environment. Production keys must pass DocuSign's go-live review before they work outside the demo environment.
401 Unauthorized
DocuSign authentication failed. Your credentials may have been revoked — reconnect with fresh credentials.
403 Forbidden
DocuSign denied access. Check that the impersonated user has permission to read the account's data.
If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.