# FlowMattic — Triggers

> Every WPsigner trigger in FlowMattic — document events, Stripe payments, cloud backups, forms, CRM sync, and template filters.

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/addons/flowmattic-triggers/
Markdown: https://docs.wpsigner.com/md/addons/flowmattic-triggers.md
Source file: addons/flowmattic-triggers.md

---

Each trigger can be limited to one WPsigner template, or left on **Any template**. Publish the workflow and turn it **On** before you expect it to run.

A specific template matches only documents WPsigner created from that template **after this addon was active**. Documents created earlier, or not from a template, do not match a specific template filter.

---

## Document Lifecycle

| Trigger | When it runs |
|---------|----------------|
| Document created | A document row is created |
| Document sent | The document is sent for signing |
| Document viewed | A signer opens the document |
| Document signed | A signer signs |
| Document completed | Every required signer has signed |
| Document declined | A signer declines. Includes `DECLINE_REASON` |
| Document expired | The document expires |
| Document cancelled | The status becomes cancelled |
| Document updated | The document row is updated |
| Document moved to trash | Soft delete |
| Document permanently deleted | Hard delete of an unsigned draft |
| Reminder sent | A signing reminder email is sent |
| Completed PDF generated | The completed PDF is ready. The file path is not included |
| WordPress user signed | The signer email matches a WordPress user |
| Document approved | An approver accepts the document |
| Signing invitation sent | The signing email goes to one person |
| Approval request sent | The approval email goes to one person |
| Signer added | A signer row is created |
| Signer removed | A signer is deleted. The payload still includes that person. No signing URL is generated |

**Document updated** runs on many row changes (title, status, expiration, message). Follow it with a [Filter](/addons/flowmattic-fields/#filter-and-iterator) step if you only want one kind of change.

Permanently deleting an unsigned draft also fires **Signer removed** once for each signer, then **Document permanently deleted**.

---

## Payments

| Trigger | When it runs |
|---------|----------------|
| Payment succeeded | A Stripe payment for a document succeeds |
| Payment failed | A Stripe payment fails. Includes `PAYMENT_ERROR` |
| Payment refunded | A Stripe charge is refunded |
| Payment disputed | Stripe opens a dispute. Includes `PAYMENT_DISPUTE` |

Amounts are decimal strings (cents divided by 100) in `PAYMENT_AMOUNT`, with `PAYMENT_CURRENCY` and `PAYMENT_INTENT`.

---

## Cloud Storage

**PDF uploaded to cloud storage** runs after a completed PDF is uploaded. Limit it with the provider field:

| Provider value | Service |
|----------------|---------|
| `-1` | Any connected provider |
| `google_drive` | Google Drive |
| `dropbox` | Dropbox |
| `onedrive` | OneDrive |
| `s3` | S3-compatible storage |

The response includes `CLOUD_PROVIDER`, `CLOUD_REFERENCE`, and `CLOUD_URL` when a public HTTPS link exists.

---

## Forms, Orders, and In-Form Signing

**Document created from a form or order** runs when one of these creates a document:

| Source value | Origin |
|--------------|--------|
| `-1` | Any form or store |
| `fluentforms` | Fluent Forms |
| `wpforms` | WPForms |
| `gravityforms` | Gravity Forms |
| `elementor` | Elementor Forms |
| `formidable` | Formidable Forms |
| `cf7` | Contact Form 7 |
| `woocommerce` | WooCommerce |

**Form content signed** runs when someone signs inside the form, which is a separate event from **Document signed**. That signing also fires **Document signed**.

| Source value | Origin |
|--------------|--------|
| `-1` | Any of the plugins below |
| `fluentforms` | Fluent Forms content signing |
| `wpforms` | WPForms content signing |
| `gravityforms` | Gravity Forms content signing |
| `gravityforms_embedded` | Gravity Forms embedded signing |
| `elementor` | Elementor content signing |
| `formidable` | Formidable content signing |

Both triggers include `SOURCE`, `SOURCE_ENTRY_ID`, `SOURCE_FORM_ID`, `SOURCE_FORM_TITLE`, `SOURCE_ORDER_ID`, `SOURCE_ORDER_NUMBER`, and `SOURCE_FEED_ID` when the hook provides them. Submitted answers and order line items are not included.

---

## CRM

**CRM sync finished** runs after WPsigner syncs a document to HubSpot or Pipedrive. Limit it with the CRM field: `-1` (either), `hubspot`, or `pipedrive`. The response includes `CRM_PROVIDER`.

---

## Next Steps

- [Workflow fields](/addons/flowmattic-fields/)
- [Actions](/addons/flowmattic-actions/)
- [Settings](/addons/flowmattic-settings/)
