Loading...
New: API Access + Custom Branding now available on Business. Upgrade now →
Loading...
Connect SignBolt to Slack and get real-time notifications the moment a document is signed, viewed, or declined. Keep your whole team in the loop without leaving Slack.
Business plan required · No per-notification fees · Cancel anytime
Every signing event delivers a formatted notification to your chosen channel.
SignBolt
App · Today at 10:32 AM
Document Signed
Document
Freelance Contract — Acme Corp
Signed By
Alex Johnson
client@acme.com
Signed At
Apr 8, 2026 · 10:32 AM UTC
Document ID
doc_abc123
Three steps to connect SignBolt signing events to your Slack workspace.
Generate a SignBolt Business API key from your dashboard. In Slack, create an Incoming Webhook URL for the channel where you want signing notifications delivered.
Paste your Slack Incoming Webhook URL into SignBolt's webhook settings. Choose which events to forward: document.signed, document.viewed, or document.declined.
Every time a document is signed, your team gets a formatted Slack message with the signer name, document title, timestamp, and a direct link to download the signed PDF.
Keep your team informed without switching context from Slack.
When a recipient signs a document, SignBolt immediately fires a webhook that formats a Block Kit message and delivers it to your configured Slack channel. No polling, no delays.
Route different document types to different channels. Send NDA notifications to #legal, contract completions to #sales, and HR onboarding forms to #people-ops.
Everyone on your team sees when a document moves from sent to viewed to signed. No more asking 'has the client signed yet?' — your Slack channel has the answer.
Get an immediate Slack alert when a recipient declines to sign. Know right away so you can follow up, address concerns, or send a revised document.
Use the /signbolt slash command in any channel to create a signing link on the fly. Pass a document name or template type and get back a shareable signing URL without leaving Slack.
Webhook events and API access — everything needed to build the Slack integration — are included in the SignBolt Business plan at $24/mo. No per-channel or per-notification fees.
SignBolt fires these events to your webhook endpoint. Your handler transforms them into formatted Slack messages and delivers them to your channel.
document.signedFires when a recipient completes signing. Delivers a Slack message with signer name, document title, completion timestamp, and a download link for the signed PDF.
document.viewedFires when a recipient opens the signing link. Lets your team know the document is being reviewed — useful for following up if signing stalls.
document.declinedFires when a recipient explicitly declines to sign. Triggers an urgent Slack alert so your team can act fast — follow up, revise, or reassign the document.
Step-by-step instructions to connect SignBolt webhook events to Slack.
In your Slack workspace, go to Apps → Incoming WebHooks and click Add to Slack. Choose the channel where you want signing notifications delivered (e.g. #contracts or #sales). Copy the generated Webhook URL — it looks like https://hooks.slack.com/services/T.../B.../...
Deploy the serverless function below (Vercel, Netlify, or any Node.js environment). Set the environment variable SLACK_WEBHOOK_URL to your Slack Incoming Webhook URL. This function receives SignBolt events and forwards them as formatted Block Kit messages to Slack.
// Serverless function (e.g. Vercel Edge Function or AWS Lambda)
// Receives SignBolt webhook events and forwards to Slack
export async function POST(req: Request) {
const event = await req.json();
// Map SignBolt event types to Slack-friendly labels
const eventLabels: Record<string, string> = {
"document.signed": "✅ Document Signed",
"document.viewed": "👀 Document Viewed",
"document.declined": "❌ Document Declined",
};
const label = eventLabels[event.event] ?? "📄 Document Event";
// Build Block Kit payload
const slackPayload = {
blocks: [
{
type: "header",
text: { type: "plain_text", text: label },
},
{
type: "section",
fields: [
{ type: "mrkdwn", text: `*Document*\n${event.documentTitle}` },
{ type: "mrkdwn", text: `*Signer*\n${event.signerName} (${event.signerEmail})` },
],
},
...(event.downloadUrl
? [
{
type: "actions",
elements: [
{
type: "button",
text: { type: "plain_text", text: "Download Signed PDF" },
url: event.downloadUrl,
style: "primary",
},
],
},
]
: []),
],
};
// Forward to Slack Incoming Webhook
await fetch(process.env.SLACK_WEBHOOK_URL!, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(slackPayload),
});
return new Response(JSON.stringify({ ok: true }), { status: 200 });
}Log in to your SignBolt Business dashboard. Navigate to Settings → Webhooksand add your handler's URL as the webhook endpoint. Select which events to forward: document.signed, document.viewed, and document.declined.
From your SignBolt dashboard, send a test document for signature to yourself. When you open the signing link and sign the document, you should see a formatted notification appear in your configured Slack channel within a few seconds. The payload below shows exactly what your handler receives before it formats the Slack message.
// SignBolt fires this to your endpoint when a document is signed.
// Your handler transforms it into a Slack Block Kit message.
// ── Incoming SignBolt webhook payload ─────────────────────────────────────────
{
"event": "document.signed",
"documentId": "doc_abc123",
"documentTitle": "Freelance Contract — Acme Corp",
"signerEmail": "client@acme.com",
"signerName": "Alex Johnson",
"signedAt": "2026-04-08T10:32:00Z",
"downloadUrl": "https://signbolt.store/api/documents/doc_abc123/download"
}
// ── Outgoing Slack Block Kit message ──────────────────────────────────────────
{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "✅ Document Signed"
}
},
{
"type": "section",
"fields": [
{ "type": "mrkdwn", "text": "*Document*\nFreelance Contract — Acme Corp" },
{ "type": "mrkdwn", "text": "*Signed By*\nAlex Johnson (client@acme.com)" },
{ "type": "mrkdwn", "text": "*Signed At*\nApr 8, 2026 at 10:32 AM UTC" },
{ "type": "mrkdwn", "text": "*Document ID*\ndoc_abc123" }
]
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": { "type": "plain_text", "text": "Download Signed PDF" },
"url": "https://signbolt.store/api/documents/doc_abc123/download",
"style": "primary"
}
]
}
]
}To create signing links directly from Slack, create a Slack app in your workspace. Under Slash Commands, add a /signbolt command pointing to your handler URL. Your handler receives the slash command payload and calls the SignBolt API at POST /api/v1/sign to generate a signing link, then posts the link back to the channel.
Any team that sends documents for signature and communicates in Slack.
Get notified in #deals the moment a prospect signs a proposal or contract. Move the deal to Closed Won immediately — no chasing.
Receive alerts in #onboarding when new hires sign offer letters and NDAs. Trigger the welcome workflow the instant documents are complete.
Know the moment a client signs your contract or SOW. Post notifications to a client-specific channel if your team shares Slack with clients.
Track every document signing event in #legal with a full audit trail in each Slack message. Document title, signer identity, and timestamp — all in one place.
Webhook events and API access — everything you need to connect SignBolt to Slack — is included in the Business plan. No add-ons. No per-notification fees.
No. This integration uses Slack Incoming Webhooks, which are a built-in Slack feature available on all plans. You create a webhook URL in your Slack workspace settings and paste it into SignBolt. No marketplace app is required.
The Business plan ($24/mo) includes webhook support and API access required to build the Slack integration. Webhook event delivery is not available on the Free or Pro plans.
Yes. You can configure multiple webhook endpoints in SignBolt, each pointing to a different Slack Incoming Webhook URL. Route NDA completions to #legal, sales contracts to #deals, and onboarding forms to #hr using separate webhook configurations.
SignBolt sends a formatted Slack Block Kit message containing: the event type (signed/viewed/declined), the document title, the signer's email address, the timestamp, and a button linking directly to the signed PDF download.
The /signbolt slash command is built on top of SignBolt's REST API. When you type /signbolt create [document-name], it calls the API to generate a signing link and posts it back to the channel. You configure the slash command endpoint in your Slack app settings to point to your SignBolt webhook handler.
SignBolt fires webhook events immediately when signing actions occur. If your Slack Incoming Webhook URL is temporarily unavailable, the event may be lost. For high-reliability setups, we recommend pointing your webhook at a serverless function that queues events before forwarding to Slack.
Creating a Slack Incoming Webhook takes about two minutes in Slack's App Directory — no coding required. Paste the URL into SignBolt's webhook settings and you're live. The slash command integration requires a developer to configure the Slack app endpoint.
Start with the Business plan. Set up your Slack Incoming Webhook, deploy the handler, and get real-time signing notifications in minutes.