# Slack

> Send signing notifications to a Slack channel

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/slack/
Markdown: https://docs.wpsigner.com/md/integrations/slack.md
Source file: integrations/slack.md

---

## Overview

The Slack integration sends document signing notifications to a Slack channel using [Incoming Webhooks](https://api.slack.com/messaging/webhooks). When a document requires signatures, is signed, or is completed, a rich notification with action buttons appears in your designated Slack channel.

> **note**
Requires WPsigner 2.1.0 or later.

## Use Cases

| Scenario | Description |
|----------|-------------|
| **Team awareness** | Keep your team informed of every signing event without leaving Slack |
| **Sales deal closing** | Notify the sales channel the instant a proposal or contract is signed |
| **HR document flow** | Alert HR when new-hire paperwork (NDAs, offer letters) is executed |
| **Legal review** | Post signing activity to a legal channel for real-time compliance monitoring |
| **Executive visibility** | Surface document completion status to leadership channels |
| **Fast follow-up** | Use action buttons in Slack messages to jump straight to the document |

## Prerequisites

- A Slack workspace where you have admin permissions
- WPsigner 2.1.0+ installed and activated

## Compatibility

| Component | Minimum Version | Recommended |
|-----------|----------------|-------------|
| **WPsigner** | 2.1.0 | Latest |
| **WordPress** | 5.8 | 6.4+ |
| **PHP** | 7.4 | 8.1+ |
| **Slack API** | Incoming Webhooks v2 | Incoming Webhooks v2 |
| **TLS** | 1.2 | 1.3 |
| **PHP Extensions** | `curl`, `json` | `curl`, `json`, `openssl` |

## Setup

1. **Create a Slack App**

   Go to [api.slack.com/apps](https://api.slack.com/apps) and click **Create New App** → **From scratch**.

   Name it something like "WPsigner" and select your workspace.

2. **Enable Incoming Webhooks**

   In the app settings sidebar, click **Incoming Webhooks** and toggle it **ON**.

3. **Add a Webhook**

   Click **Add New Webhook to Workspace**, select the channel where you want to receive notifications, and click **Allow**.

4. **Copy the Webhook URL**

   Copy the generated webhook URL. It will look like:

   ```
   https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
   ```

5. **Configure in WPsigner**

   Go to **WPsigner** → **Integrations** → **Slack** → **Configure**.

   - Toggle **Enable Slack Notifications**
   - Paste your webhook URL
   - Optionally enter the channel name for your reference
   - Click **Test Connection** to verify
   - Click **Save Settings**

## Notifications

The integration sends rich [Block Kit](https://api.slack.com/block-kit) messages for four events:

### Document Ready for Signature

When a document is created and a signer is assigned, a notification with a **Sign Document** button is sent to the channel.

### Signature Recorded

When a signer completes their signature, a confirmation notice appears in the channel.

### Document Completed

When all signers have signed, a completion notification is sent with the total signer count.

### Reminder (Manual)

When an admin sends a manual reminder, a notification with a **Sign Now** button appears.

## Security

| Measure | Implementation |
|---------|---------------|
| Webhook URL storage | Encrypted at rest (AES-256-GCM) |
| URL validation | Domain restricted to `hooks.slack.com` only |
| URL privacy | Never echoed back to the browser |
| Transport security | HTTPS + TLS 1.2+ (enforced by Slack) |
| Access control | WordPress admin capability check |
| CSRF protection | WordPress nonce verification |
| Content escaping | All user content escaped before inclusion |

## Troubleshooting

### "Invalid Slack webhook URL"

The URL must start with `https://hooks.slack.com/`. Verify you copied the full URL from Slack.

### "Test failed" with `channel_not_found`

The channel associated with the webhook may have been deleted or archived. Create a new webhook for an active channel.

### "Test failed" with `invalid_payload`

Ensure your WPsigner installation uses PHP 7.4+ with `json_encode` support.

### No message appears after test

1. Check that the webhook is enabled in your Slack App settings
2. Verify the channel hasn't been archived
3. Check that your server can reach `hooks.slack.com` (no firewall blocking outbound HTTPS)

## API Reference

### Hooks Used

| Hook | Event |
|------|-------|
| `wps_signer_created` | Signing request sent |
| `wps_after_document_signed` | Signature recorded |
| `wps_document_completed` | All signatures complete |

### Options

| Option Key | Description |
|-----------|-------------|
| `wps_slack_enabled` | Integration enabled (boolean) |
| `wps_slack_webhook_url` | Encrypted webhook URL |
| `wps_slack_channel_name` | Display channel name (string) |

## Comparison

| Feature | Slack | Telegram | WhatsApp |
|---------|-------|----------|----------|
| **Target** | Channel (team) | Individual (Chat ID) | Individual (phone) |
| **Auth** | Webhook URL | Bot Token | API Token |
| **Message format** | Block Kit (mrkdwn) | HTML | Template |
| **Setup complexity** | Low | Medium | High |
| **Rate limit** | 1/sec/webhook | 30/sec | Varies |

## Next Steps

- [Microsoft Teams Integration](/integrations/teams/) — Receive Adaptive Card notifications in Teams channels
- [Telegram Integration](/integrations/telegram/) — Notify individual signers via a Telegram bot
- [Twilio SMS Integration](/integrations/twilio/) — Deliver signing requests and reminders by SMS
- [WhatsApp Integration](/integrations/whatsapp/) — Send notifications via WhatsApp Business API
- [Zapier Integration](/integrations/zapier/) — Connect WPsigner with 5,000+ apps via Zapier
- [n8n Integration](/integrations/n8n/) — Build custom automation workflows with n8n
- [Make Integration](/integrations/make/) — Create visual automation scenarios with Make
- [All Integrations](/integrations/) — Browse every available WPsigner integration
