WPsigner integrates with Zapier to connect your document signing workflows with thousands of apps — no code required.
Requirements
Section titled “Requirements”- WPsigner 1.8.0+
- An active Zapier account (Free tier available)
- A WPsigner API key with Full permissions
Step 1: Accept the Zapier Invitation
Section titled “Step 1: Accept the Zapier Invitation”Click the link below to add WPsigner to your Zapier account:
This invite adds the current WPsigner Zapier app (version 1.1.1 — includes Create Document From Template with dynamic variable fields). You can also find this link in WPsigner → Integrations → Zapier inside your WordPress admin.
Step 2: Generate an API Key
Section titled “Step 2: Generate an API Key”Go to WPsigner → Settings → API Keys and click Generate New Key.
- Name:
Zapier Integration - Permissions:
Full(required — read-only keys will be rejected) - Rate Limit:
1000/hour(default)
Step 3: Create a New Zap
Section titled “Step 3: Create a New Zap”In Zapier, click Create Zap and search for WPsigner as a trigger or action app.
Step 4: Connect Your WPsigner Account
Section titled “Step 4: Connect Your WPsigner Account”When prompted, enter your credentials:
| Field | Value |
|---|---|
| Site URL | Your full WordPress URL (e.g. https://yourdomain.com) — no trailing slash |
| API Key | The key from Step 2 |
| API Secret | The secret from Step 2 |
Step 5: Build Your Zap
Section titled “Step 5: Build Your Zap”Choose a trigger (e.g. “Document Signed”), select an action (e.g. “Google Sheets → Create Row”), map your fields, and turn on your Zap!
Available Triggers
Section titled “Available Triggers”These events fire automatically and in real-time when something happens in WPsigner:
| Trigger | Description | Key Data |
|---|---|---|
| Document Created | A new document is created | Document ID, title, status |
| Document Sent | Document sent to signers | Document info, signer list |
| Document Signed | A signer signs the document | Signer name, email, signed timestamp, plus contact fields for marketing tools (contact_name, contact_email, contact_address, marketing_consent) when those values exist on the document |
| Document Completed | All signers finished | Download URL, all signer data |
| Document Declined | A signer declines | Signer info, decline reason |
Available Actions
Section titled “Available Actions”Use these to create and manage documents from other apps:
| Action | Description | Required Fields |
|---|---|---|
| Create Document from Template | Clones a WPsigner template, prefills variables, adds a signer, and optionally emails the invitation | Template, Signer Name, Signer Email |
| Create Document | Creates a new document with optional signers (up to 2) | Title, optional: signer name + email |
| Send Document | Sends a document to its signers via email | Document ID |
Create Document from Template fields
Section titled “Create Document from Template fields”| Field | Required | Notes |
|---|---|---|
| Template | Yes | Dropdown from your site (GET /templates) |
| Document Title | No | Defaults to template name + date/time |
| Signer Name / Email | Yes | Client who will sign |
| Variable: client_name | No | Prefills template field mapped as client_name |
| Variable: property_address | No | Prefills property_address |
| Variable: appointment_date | No | Prefills appointment_date |
| Additional Variables | No | Extra key/value pairs matching Variable Mapping keys |
| Send Signing Invitation | No | Default true — emails the invite immediately |
Full REST details: Templates API.
Search
Section titled “Search”| Search | Description | Input |
|---|---|---|
| Find Document | Look up a document by ID (includes signers and fields) | Document ID |
Example Zap Recipes
Section titled “Example Zap Recipes”When Calendly books an appointment → Send agreement from template
Section titled “When Calendly books an appointment → Send agreement from template”Automate showing agreements / intake forms when someone books.
- In WPsigner, create a PDF template with fillable fields. Double-click each field to set Mapping name (
client_name,property_address,appointment_date), or use Templates → ⋮ → Map Variables after saving. - Build the Zap:
- Trigger: Calendly → Invitee Created
- Action: WPsigner → Create Document from Template
- Map:
- Template → your agreement template
- Signer Name → Invitee Name
- Signer Email → Invitee Email
client_name→ Invitee Nameproperty_address→ event/location or a custom Calendly questionappointment_date→ Event Start Time- Send Signing Invitation → true
The client receives the signing email automatically. No separate Send step is required.
When a contract is signed → Add row to Google Sheets
Section titled “When a contract is signed → Add row to Google Sheets”Track all signed documents in a spreadsheet for compliance or reporting.
- Trigger: WPsigner → Document Signed
- Action: Google Sheets → Create Spreadsheet Row
- Map: Document Title, Signer Name, Signer Email, Signed At
When a CRM deal closes → Create signing document from template
Section titled “When a CRM deal closes → Create signing document from template”Automate contract creation when a deal reaches “Closed Won” in your CRM.
- Trigger: HubSpot → Deal Stage Changed
- Action: WPsigner → Create Document from Template
- Map: Template, Contact Name → Signer Name /
client_name, Contact Email → Signer Email
When a CRM deal closes → Create blank document (legacy)
Section titled “When a CRM deal closes → Create blank document (legacy)”- Trigger: HubSpot → Deal Stage Changed
- Action: WPsigner → Create Document
- Map: Deal Name → Title, Contact Name → Signer Name, Contact Email → Signer Email
- Action 2: WPsigner → Send Document
When a document is declined → Notify Slack
Section titled “When a document is declined → Notify Slack”Get instant alerts when someone declines to sign.
- Trigger: WPsigner → Document Declined
- Action: Slack → Send Channel Message
- Map: Document Title, Signer Name, Decline Reason
When all signers complete → Upload to Google Drive
Section titled “When all signers complete → Upload to Google Drive”Automatically archive fully signed documents.
- Trigger: WPsigner → Document Completed
- Action: Google Drive → Upload File (using Download URL)
Webhook Payload Structure
Section titled “Webhook Payload Structure”All triggers send data in this format:
{ "event": "document.signed", "timestamp": "2026-01-15T11:00:00-05:00", "data": { "document": { "id": 123, "title": "Service Agreement", "status": "sent", "created_at": "2026-01-15T10:30:00-05:00", "form_data": { "address": "123 Main Street, Austin, TX 78701", "marketing_consent": true } }, "signer": { "id": 1, "name": "John Doe", "email": "john@example.com", "status": "signed", "signed_at": "2026-01-15T11:00:00-05:00" } }, "contact_name": "John Doe", "contact_email": "john@example.com", "contact_address": "123 Main Street, Austin, TX 78701", "marketing_consent": true, "meta": { "site_url": "https://yourdomain.com", "site_name": "Your Site", "plugin_version": "3.0.3.1" }}Security
Section titled “Security”| Feature | Details |
|---|---|
| Authentication | API Key + Secret via X-WPS-API-KEY and X-WPS-API-SECRET headers |
| Permissions | Full permissions required — read-only keys are rejected |
| Rate limiting | Respects the configured rate limit (default: 1000 req/hour) |
| HMAC Signatures | Webhooks include X-ESF-Signature headers for payload verification |
| URL Validation | Subscribe endpoints validate URLs with wp_http_validate_url to prevent SSRF |
Troubleshooting
Section titled “Troubleshooting”Zapier says “Authentication Failed”
Section titled “Zapier says “Authentication Failed””- Verify your Site URL does not have a trailing slash (use
https://yourdomain.comnothttps://yourdomain.com/) - Confirm the API Key has Full (not Read) permissions
- Check that the key is not revoked in WPsigner → Settings → API Keys
- Ensure your site’s REST API is accessible — test by visiting
https://yourdomain.com/wp-json/insigner/v1/zapier/auth/testin your browser
Triggers Not Firing
Section titled “Triggers Not Firing”- Check that the Zap is turned ON in Zapier
- Verify webhooks are registered: WPsigner → More → Webhooks should show a “Zapier:” entry
- Confirm your site is publicly accessible (Zapier cannot reach
localhostor private IPs) - Check WPsigner webhook logs for delivery errors
Rate Limit Exceeded
Section titled “Rate Limit Exceeded”If you see 429 Too Many Requests:
- Increase the rate limit on your API key in WPsigner → Settings → API Keys
- Reduce the number of Zaps hitting the same site simultaneously
- Add delays between automated actions in multi-step Zaps
Technical Reference
Section titled “Technical Reference”REST Endpoints
Section titled “REST Endpoints”| Endpoint | Method | Description |
|---|---|---|
/wp-json/insigner/v1/zapier/auth/test | GET | Validate API credentials |
/wp-json/insigner/v1/zapier/subscribe | POST | Create webhook subscription |
/wp-json/insigner/v1/zapier/subscribe/{id} | DELETE | Remove webhook subscription |
/wp-json/insigner/v1/zapier/sample/{event} | GET | Get sample event data |
/wp-json/insigner/v1/zapier/perform-list/{event} | GET | Get recent real events |
/wp-json/insigner/v1/templates | GET | List templates (Zapier dropdown) |
/wp-json/insigner/v1/templates/{id}/documents | POST | Create document from template + optional send |
See also: Templates API.
Available Events
Section titled “Available Events”document.created · document.sent · document.viewed · document.signed · document.completed · document.declined · document.expired · signer.reminded
Next Steps
Section titled “Next Steps”- Google Drive Integration — Auto-backup signed documents
- n8n & Make — Self-hosted automation alternatives
- WPsigner for Uncanny Automator — Native WordPress recipes without Zapier
- API Overview — Full REST API documentation