Loading...
New: API Access + Custom Branding now available on Business. Upgrade now →
Loading...
Connect SignBolt to Notion. Embed signing links directly in your pages, auto-log every completed signing to a Notion database, and track document status as Notion properties — all without leaving your workspace.
Business plan required · No per-database fees · Cancel anytime
Every signed document creates a new row automatically. No manual data entry.
Three steps to connect SignBolt signing events to your Notion workspace.
Create a Notion integration at developers.notion.com and grant it access to your workspace. Copy the integration token — you'll use it to write signed document records to your Notion database.
Choose or create a Notion database to store your signed documents. Add properties for Status, Signer Email, Signed At, and a Download URL. Share the database with your Notion integration.
When a document is signed, SignBolt fires a webhook. Your handler calls the Notion API to create a new page in your database with the signer details, document title, timestamp, and download link.
Keep all your signed documents organized in the workspace your team already uses.
Paste any SignBolt signing URL directly into a Notion page as an embed or bookmark. Share your project page with a client and let them sign the attached contract without leaving your Notion workspace.
Every completed signing event is automatically written to your Notion database. No manual updates. Your 'Contracts' or 'Client Agreements' database stays current automatically.
Store signing state as a Select property: Sent, Viewed, Signed, or Declined. Filter your database to see outstanding documents at a glance. Sort by Signed At to track your signing timeline.
Keep all your client contracts in one Notion database. When a client signs, a new row appears automatically with their name, the contract title, the date signed, and a link to the signed PDF.
Share your contracts database with your team in Notion. Everyone can see which documents are pending, which are signed, and which need follow-up — without email threads.
Webhook events and API access — everything needed to write to Notion — are included in the SignBolt Business plan at $24/mo. No per-database or per-entry fees.
SignBolt fires these events to your webhook handler. Your handler calls the Notion API to update or create records in your database.
document.signedFires when a recipient completes signing. Creates a new Notion database row with signer name, document title, signed timestamp, and download URL for the signed PDF.
document.viewedFires when a recipient opens the signing link. Updates the Status property in your Notion database to 'Viewed' so you know the document is being reviewed.
document.declinedFires when a recipient declines to sign. Updates the Notion database Status to 'Declined' so you can filter and follow up on outstanding documents.
Many freelancers already manage their client work in Notion — projects, invoices, meeting notes. Adding contract signing to that workflow is a natural fit.
Add a SignBolt signing link as a bookmark block on the client's project page.
The client sees the contract link on your shared Notion page and clicks to sign.
SignBolt fires a webhook. Your handler creates a row in your Contracts database with the signed PDF link.
Status changes to Signed. The download URL appears in the row. No manual entry needed.
Step-by-step instructions to connect SignBolt webhook events to a Notion database.
Go to developers.notion.comand create a new integration. Name it 'SignBolt', associate it with your workspace, and give it Insert content capability. Copy the Internal Integration Token — you'll use it as NOTION_TOKEN.
Create a new Notion database (or use an existing one). Add these properties:
Then click Shareon the database and invite your SignBolt integration so it has permission to write to this database. Copy the database ID from the URL — it's the 32-character string after the last /.
Deploy the handler below to Vercel, Netlify, or any Node.js environment. Set the environment variables NOTION_TOKEN and NOTION_DATABASE_ID. Install the Notion SDK with npm install @notionhq/client.
// Webhook handler: receives SignBolt event, creates Notion page
// Deploy as a Vercel Edge Function, Netlify Function, or similar
import { Client } from "@notionhq/client";
const notion = new Client({ auth: process.env.NOTION_TOKEN });
export async function POST(req: Request) {
const event = await req.json();
// Only handle signed events for Notion logging
// (you can extend this for viewed/declined as well)
if (event.event !== "document.signed") {
return new Response(JSON.stringify({ ok: true }), { status: 200 });
}
// Create a new page (row) in your Notion database
await notion.pages.create({
parent: {
database_id: process.env.NOTION_DATABASE_ID!,
},
properties: {
// Title property — document name
"Document Title": {
title: [{ text: { content: event.documentTitle } }],
},
// Status: Signed / Viewed / Declined
Status: {
select: { name: "Signed" },
},
// Signer name
"Signer Name": {
rich_text: [{ text: { content: event.signerName ?? "" } }],
},
// Signer email
"Signer Email": {
email: event.signerEmail,
},
// When the document was signed
"Signed At": {
date: { start: event.signedAt },
},
// Download URL for the signed PDF
"Download URL": {
url: event.downloadUrl,
},
},
});
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 the events to forward: document.signed, document.viewed, and document.declined.
// SignBolt fires this payload to your webhook handler
// when a signing event occurs
// document.signed
{
"event": "document.signed",
"documentId": "doc_abc123",
"documentTitle": "Freelance Contract — Acme Corp Q2",
"signerEmail": "client@acme.com",
"signerName": "Alex Johnson",
"signedAt": "2026-04-08T10:32:00Z",
"downloadUrl": "https://signbolt.store/api/documents/doc_abc123/download"
}
// document.viewed
{
"event": "document.viewed",
"documentId": "doc_abc123",
"documentTitle": "Freelance Contract — Acme Corp Q2",
"signerEmail": "client@acme.com",
"viewedAt": "2026-04-08T10:28:00Z"
}
// document.declined
{
"event": "document.declined",
"documentId": "doc_abc123",
"documentTitle": "Freelance Contract — Acme Corp Q2",
"signerEmail": "client@acme.com",
"declinedAt": "2026-04-08T10:35:00Z",
"reason": "Needs revision"
}For any document you send for signature, copy the signing link from your SignBolt dashboard. In your Notion page, type /embed or /bookmark and paste the URL. Your client or team member can click the link directly from your Notion page to sign the document.
Webhook events and API access — everything you need to auto-log documents to Notion — is included in the Business plan. No add-ons, no per-database fees.
No. The Notion API integration works on Notion's free plan. You'll need to create a Notion integration at developers.notion.com (free) and share your database with that integration. The SignBolt Business plan ($24/mo) is what unlocks webhook events on the SignBolt side.
The Business plan ($24/mo) includes webhook support and API access. Webhook events — which power the Notion database auto-logging — require the Business plan.
Yes. You can point the integration at any existing Notion database. Add the required properties (Status, Signer Email, Signed At, Document Title, Download URL) to your existing database schema. The handler creates a new page (row) for each signing event.
Yes. SignBolt generates a unique signing URL for every document you send for signature. You can paste that URL into any Notion page as a bookmark or embed block. Recipients can open the page and access the signing link directly from your Notion workspace.
The integration writes: Document Title (title property), Signer Email (email property), Signer Name (text property), Signed At (date property), Status (select property: Signed/Viewed/Declined), and Download URL (URL property) for the signed PDF.
The basic embed — pasting a signing URL into a Notion page — requires no code. The auto-logging integration (writing to a Notion database when documents are signed) requires deploying a small webhook handler. This takes under 30 minutes with the code snippet provided.
If the Notion API returns an error when your webhook handler tries to write a record, we recommend implementing a retry queue in your handler. Log failed writes so you can process them manually if needed. SignBolt fires the webhook once — your handler is responsible for delivery reliability.
Start with the Business plan. Set up your Notion integration, deploy the handler, and start auto-logging signed documents to your workspace today.