Linking ZapSign as a source
This source is currently in alpha. The interface and available tables may change.
The ZapSign connector syncs your e-signature data – documents, signers, and templates – into PostHog, so you can analyze signing funnels and completion rates alongside your product data. With webhooks enabled, document events (created, signed, refused, deleted) arrive in real time.
Prerequisites
You need a ZapSign account with API access. The API token is available in ZapSign under Settings > Integrations > ZapSign API.
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 ZapSign, you'll need:
- API token – found in ZapSign under Settings > Integrations > ZapSign API.
- Environment – choose Production for your live account, or Sandbox if the token belongs to a sandbox account (
sandbox.api.zapsign.com.br).
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.
Documents support incremental syncs on their creation date (created_at). ZapSign's API can only filter by creation date, so an incremental sync picks up newly created documents but not status changes on older ones – enable webhooks to keep document statuses current, or use full refresh. Signers and templates always sync with full refresh.
The signers table is built by fetching each document's detail, so syncing it makes one API request per document.
Webhooks
With webhooks enabled on the documents table, ZapSign pushes document events (created, signed, refused, deleted) to PostHog as they happen.
- Go to your ZapSign source in the data pipeline sources tab and open the Webhook tab.
- Click Create webhook. PostHog registers the webhook in ZapSign using your API token and generates a secret authorization header to verify deliveries.
If automatic registration fails, create the webhook manually:
- Copy the webhook URL from the Webhook tab.
- In ZapSign, go to Settings > Integrations > ZapSign API > Webhooks and add a webhook pointing at that URL, subscribed to all document events.
- Add an Authorization header with a secret value you generate, and paste the same value into the Authorization header field in PostHog.
ZapSign's API has no way to look up or remove webhooks later, so if you disconnect the source, delete the webhook in ZapSign manually.
Configuration
| Option | Type | Required |
|---|---|---|
API token | password | Yes |
Environment | select | Yes |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
documents | A document sent for electronic signature, with its signing status and signer list. | Webhook, Incremental, Full refresh | created_at | — |
templates | A reusable document template ('model') used to generate documents for signature. | Full refresh | — | — |
signers | A person who is asked to sign a document, with their signing status and authentication details. | Full refresh | — | — |
Troubleshooting
The original_file and signed_file columns contain temporary download links that expire about 60 minutes after they're generated – re-fetch the document from the ZapSign API when you need a fresh link.
If syncs fail with a 403 Forbidden error, the API token is missing or invalid (ZapSign responds with 403 rather than 401 for bad tokens). Copy a fresh token from Settings > Integrations > ZapSign API and update the source.
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.