# Uncanny Automator — Recipe Examples

> Ready-to-build Uncanny Automator recipes for WPsigner — WooCommerce contracts, Slack, WhatsApp loops, Drive, and refunds.

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

---

Build these on **Automator → Recipes**. Publish the recipe or WPsigner actions will refuse to run.

Use **Everyone** unless the example says logged-in.

---

## WooCommerce order → contract

**Goal:** After payment, create and send a WPsigner agreement prefilled with billing data.

| Step | Integration | Item |
|------|-------------|------|
| Trigger | WooCommerce | A user’s order status changes to completed (or paid) |
| Action | WPsigner | Create a document from a template |

Create action:

- Template: your contract template
- Send immediately: **Yes**
- Workflow: Parallel (or Sequential if countersigners must wait)
- Use recipe user as signer 1: **Yes** if the buyer is a WP user; otherwise map **Signer 1 email** to the billing email token
- Prefill:

```
client_name={{BILLING_FIRST_NAME}} {{BILLING_LAST_NAME}}
client_email={{BILLING_EMAIL}}
company={{BILLING_COMPANY}}
order_id={{ORDER_ID}}
```

Mapping names on the template must match those keys. See [Form Fields → Mapping name](/core-features/form-fields/#mapping-name-rules-important).

Native WooCommerce feeds in WPsigner can do the same without Automator: [WooCommerce](/integrations/woocommerce/). Use Automator when you also need LearnDash, CRM, or delays.

---

## Document completed → LMS or CRM

| Step | Item |
|------|------|
| Trigger | A WPsigner document is completed (specific template) |
| Condition (Pro) | Signer is a WordPress user — use Signer email token if present, or Owner email |
| Action | LearnDash enroll / FluentCRM tag / add user role |

Everyone recipes may have no signer token on *completed*. Use **Owner email**, or switch the trigger to *A document is signed* plus a condition that document status becomes completed, or store the buyer as document owner when creating.

---

## Declined → Slack

| Step | Item |
|------|------|
| Trigger | A WPsigner document is declined |
| Action | Send a Slack message via WPsigner |

Message example:

```
Declined: {{DOCUMENT_TITLE}} (ID {{DOCUMENT_ID}})
Signer: {{SIGNER_NAME}} <{{SIGNER_EMAIL}}>
Reason: {{DECLINE_REASON}}
Admin: {{DOCUMENT_ADMIN_URL}}
```

Requires [Slack](/integrations/slack/) configured in WPsigner. Do not include `{{SIGNING_URL}}` on a declined document (it is empty).

---

## Sent → WhatsApp reminder per pending signer (Pro)

| Step | Item |
|------|------|
| Trigger | A document is sent |
| Loop | Token loop → **WPsigner pending signers** |
| Delay (optional) | Wait 2 days |
| Action inside loop | Send a WPsigner reminder via channel → WhatsApp |

Leave signer email empty on the action to use the current loop signer only if the action has an email field — for channel reminder, set **Signer email** to the loop’s **Signer email** child token so you do not blast every remaining signer on each iteration.

Requires WhatsApp Business configured and a phone on each signer: [WhatsApp](/integrations/whatsapp/).

Without Pro loops: one **Send a reminder** (email) action for all pending signers, or **Get signers** → webhook.

---

## Cloud backup → notify

| Step | Item |
|------|------|
| Trigger | A completed PDF is uploaded to cloud storage → Google Drive |
| Action | Send Slack / Teams / email with `{{CLOUD_URL}}` and `{{DOCUMENT_TITLE}}` |

If `CLOUD_URL` is empty, WPsigner did not store a public `https` link. Open the file from WPsigner’s backup metadata instead of inventing a path.

---

## Payment refunded → cancel

| Step | Item |
|------|------|
| Trigger | A WPsigner Stripe payment is refunded |
| Action | Cancel a WPsigner document → Document ID token |

Only works while the document is still open (not completed/declined/expired). Completed contracts should not be cancelled this way — tag them or notify finance instead.

---

## Form plugin → create (when you need extra Automator steps)

Form feeds in WPsigner already create documents. Use Automator when the path is **form → wait / branch / other plugin → WPsigner**.

| Step | Item |
|------|------|
| Trigger | Fluent Forms / WPForms / Gravity Forms entry |
| Action | Create a WPsigner document from a template |

Prefill mapping names from the form tokens. Same keys as [Fluent Forms](/integrations/fluent-forms/) feeds.

---

## Logged-in user signed → grant access

| Step | Item |
|------|------|
| Recipe type | Logged-in users |
| Trigger | A WordPress user signs a document from {{membership template}} |
| Action | Change user role / add membership / LearnDash course |

Guest signers will not fire this trigger. Pair with an Everyone *completed* recipe if you also sell to guests.

---

## Next Steps

- [Triggers](/addons/uncanny-automator-triggers/)
- [Actions](/addons/uncanny-automator-actions/)
- [Tokens](/addons/uncanny-automator-tokens/)
- [Troubleshooting](/addons/uncanny-automator-troubleshooting/)
