# Pabbly Connect

> Connect WPsigner with Pabbly Connect for affordable, no-code workflow automation

edition: pro
Edition: Pro
AI note: This page requires WPsigner Pro. Do not tell Lite users they already have this feature.
HTML: https://docs.wpsigner.com/integrations/pabbly/
Markdown: https://docs.wpsigner.com/md/integrations/pabbly.md
Source file: integrations/pabbly.md

---

Integrate WPsigner with [Pabbly Connect](https://www.pabbly.com/connect/) to automate your document signing workflows — no coding required. Pabbly offers unlimited workflows with a one-time pricing option.

> **tip**
Compare current plan limits and pricing directly with each provider. If you prefer other visual automation options, see [Make](/integrations/make/) or [Zapier](/integrations/zapier/).

---

## How It Works

WPsigner connects to Pabbly Connect in two directions:

```
Incoming: WPsigner → Webhook → Pabbly Workflow → External App
Outgoing: External App → Pabbly Workflow → WPsigner REST API
```

| Direction | Pabbly Module | Use Case |
|---|---|---|
| **WPsigner → Pabbly** | Webhook trigger | React when documents are signed, created, etc. |
| **Pabbly → WPsigner** | API Request (Custom) | Create documents, send for signing |

---

## Requirements

- WPsigner **1.3.0+** (webhooks) / **1.8.0+** (REST API)
- A [Pabbly Connect](https://www.pabbly.com/connect/) account
- A WPsigner API key with **Full** permissions (for outgoing calls)

---

## Part 1: Receiving WPsigner Events (Triggers)

### Step 1: Create a Pabbly Workflow

1. Log in to [Pabbly Connect](https://connect.pabbly.com)
2. Click **Create Workflow**
3. Name it (e.g., `WPsigner Document Events`)

### Step 2: Set Up Webhook Trigger

1. For the **Trigger** app, select **Webhook / API** → **Catch Hook**
2. Pabbly will generate a unique **Webhook URL** — copy it
3. Click **Capture Response** to wait for the first event

### Step 3: Register the Webhook in WPsigner

1. Go to **WPsigner → More → Webhooks** in your WordPress admin
2. Click **Add Webhook**
3. Fill in:
   - **Name**: `Pabbly - Document Events`
   - **URL**: Paste the Pabbly webhook URL
   - **Events**: Select the events you want (see [Available Events](#available-events))
   - **Secret** (optional): Add for HMAC signature verification
4. Click **Save**

### Step 4: Test the Connection

1. In WPsigner, create or sign a test document
2. In Pabbly, you should see the captured payload
3. Click **Save & Send Test Response**

### Step 5: Add Action Steps

After the trigger, add action modules:

- **Google Sheets** → Add Row
- **Gmail** → Send Email
- **Slack** → Send Message
- **Notion** → Create Page
- **Discord** → Send Message

---

## Part 2: Calling WPsigner API (Actions)

### Step 1: Generate API Credentials

1. Go to **WPsigner → Settings → API Keys**
2. Click **Generate New Key**
3. Set **Permissions** to `Full`
4. Copy the **API Key** and **API Secret**

> **caution**
Save the API Secret immediately — it is shown only once.

### Step 2: Add API Request Action in Pabbly

1. For the **Action** app, select **API Request (Custom)**
2. Configure:

| Setting | Value |
|---|---|
| **Method** | `POST` |
| **URL** | `https://yoursite.com/wp-json/insigner/v1/documents` |
| **Headers** | `X-WPS-API-KEY`: your_key |
| | `X-WPS-API-SECRET`: your_secret |
| | `Content-Type`: `application/json` |
| **Body** | See below |

### Step 3: Create a Document

```json
{
  "title": "Contract for {{step1.name}}"
}
```

### Step 4: Add a Signer

Add another **API Request (Custom)** action:

| Setting | Value |
|---|---|
| **URL** | `https://yoursite.com/wp-json/insigner/v1/documents/{{step2.id}}/signers` |
| **Body** | `{"name": "{{step1.name}}", "email": "{{step1.email}}", "role": "signer"}` |

### Step 5: Send for Signing

Add a third action:

| Setting | Value |
|---|---|
| **URL** | `https://yoursite.com/wp-json/insigner/v1/documents/{{step2.id}}/send` |
| **Method** | `POST` |

---

## Example Workflows

### Workflow 1: Document Signed → Google Sheets Log

```
┌─────────────┐    ┌─────────────┐    ┌──────────────┐
│  WPsigner   │───▶│   Pabbly    │───▶│Google Sheets │
│  Webhook    │    │  Workflow   │    │   Add Row    │
└─────────────┘    └─────────────┘    └──────────────┘
```

### Workflow 2: Form Submission → Auto Contract

```
┌─────────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
│  Typeform   │───▶│ Create   │───▶│  Add     │───▶│  Send    │
│  Submission │    │ Document │    │ Signer   │    │ for Sign │
└─────────────┘    └──────────┘    └──────────┘    └──────────┘
```

### Workflow 3: All Signed → CRM + Notification

```
┌──────────┐    ┌──────────┐    ┌──────────┐
│ WPsigner │───▶│   CRM    │    │  Slack   │
│ Complete │    │  Update  │    │  Notify  │
│          │    └──────────┘    └──────────┘
└──────────┘
```

---

## Available Events

| Event | Triggered When |
|---|---|
| `document.created` | New document is created |
| `document.sent` | Document emails sent to signers |
| `document.viewed` | Signer opens the signing page |
| `document.signed` | Individual signer applies their signature |
| `document.completed` | All signatures complete |
| `document.declined` | Signer declines to sign |
| `document.expired` | Document expires unsigned |
| `signer.reminded` | Reminder sent to a signer |

---

## Webhook Payload Structure

```json
{
  "event": "document.signed",
  "timestamp": "2026-01-15T11:00:00-05:00",
  "data": {
    "document": {
      "id": 123,
      "title": "Service Agreement",
      "status": "sent"
    },
    "signer": {
      "id": 1,
      "name": "John Doe",
      "email": "john@example.com",
      "status": "signed",
      "signed_at": "2026-01-15T11:00:00-05:00"
    }
  },
  "meta": {
    "site_url": "https://yourdomain.com",
    "plugin_version": "2.1.0"
  }
}
```

---

## API Endpoints Reference

| Endpoint | Method | Description |
|---|---|---|
| `/wp-json/insigner/v1/documents` | `GET` | List all documents |
| `/wp-json/insigner/v1/documents` | `POST` | Create a new document |
| `/wp-json/insigner/v1/documents/{id}` | `GET` | Get document details |
| `/wp-json/insigner/v1/documents/{id}/signers` | `POST` | Add a signer |
| `/wp-json/insigner/v1/documents/{id}/send` | `POST` | Send for signing |

For the full API reference, see [REST API Documentation](/api/).

---

## Pabbly vs Make vs Zapier

| Feature | Pabbly Connect | Make | Zapier |
|---------|---------------|------|--------|
| Pricing | One-time or subscription | Per operation | Per task |
| Task limits | Unlimited (paid) | Based on plan | Based on plan |
| Visual editor | ✅ | ✅ | ✅ |
| Multi-step | ✅ | ✅ | ✅ |
| Webhook trigger | ✅ | ✅ | ✅ |
| API Request action | ✅ | ✅ | Via Code |
| Delay/Wait | ✅ | ✅ | ✅ |

---

## Troubleshooting

| Issue | Cause | Solution |
|---|---|---|
| Webhook not captured | URL incorrect | Re-copy the webhook URL from Pabbly |
| `401` from WPsigner API | Invalid credentials | Verify `X-WPS-API-KEY` and `X-WPS-API-SECRET` |
| `403` error | Read-only key | Generate a key with **Full** permissions |
| Response empty | Events not selected | Enable the correct events in WPsigner → Webhooks |
| Delay in triggers | Pabbly webhook polling | Webhooks are instant; check Pabbly workflow is active |

---

## Next Steps

- [Make Integration](/integrations/make/) — Visual automation with per-operation pricing
- [n8n Integration](/integrations/n8n/) — Self-hosted automation
- [Zapier Integration](/integrations/zapier/) — 6,000+ app integrations
- [API Overview](/api/) — Full REST API documentation
