Package Information
Downloads: 0 weekly / 22 monthly
Latest Version: 1.0.2
Author: HubSeal
Documentation
n8n-nodes-hubseal
E-Signature Automation for n8n
Automate document signing workflows for individuals, businesses, churches, and NGOs.
🚀 Why HubSeal?
- For Everyone — Individual users get 5 free signatures monthly, with Starter and Pro plans available
- Multi-Tenant Architecture — Built for organizations of all sizes
- Template-Based Signing — Reusable document templates with predefined fields
- Anchor Text Detection — Automatically place signature fields using text markers
- Webhook Events — Real-time notifications for all signature lifecycle events
- Enterprise Security — HMAC-signed webhooks, API key authentication, role-based access
📦 Installation
n8n Cloud
- Go to Settings → Community Nodes
- Click Install a community node
- Enter:
n8n-nodes-hubseal - Click Install
n8n Self-Hosted
npm install n8n-nodes-hubseal
Docker
# Add to your n8n Dockerfile
RUN cd /usr/local/lib/node_modules/n8n && npm install n8n-nodes-hubseal
⚡ Quick Start
1. Create a HubSeal Account
Sign up for free at https://app.hubwf.com/signup
2. Generate an API Key
- Log into your HubSeal dashboard
- Navigate to Settings → Developer
- Click Create API Key
- Select scopes:
documents:read— List and view signature requestsdocuments:write— Create, send, void signature requestswebhooks:read— List webhooks and view delivery logswebhooks:write— Create, update, delete webhook endpoints
- Copy your key (format:
hubwf_live_sk_xxxxx)
⚠️ Important: API keys are only shown once at creation. Store securely!
3. Configure Credentials in n8n
- In n8n, go to Credentials → Add Credential
- Search for HubSeal API
- Enter:
- API Key: Your HubSeal API key
- API Base URL:
https://api.hubwf.com/v1
💡 Your API key automatically includes your tenant information — no separate Tenant ID required.
📋 Features
Document Actions
| Action | Description | Endpoint |
|---|---|---|
| Create signature request | Send a document for signing | POST /v1/documents |
| Create from template | Use a pre-built template | POST /v1/documents |
| Get document | Retrieve document details | GET /v1/documents/:id |
| List documents | List all signature requests | GET /v1/documents |
| Download signed document | Get the completed PDF | GET /v1/documents/:id/download |
| Send reminder | Remind pending signers | POST /v1/documents/:id/remind |
| Void document | Cancel a signature request | DELETE /v1/documents/:id |
Template Actions
| Action | Description | Endpoint |
|---|---|---|
| Get template | Retrieve template details | GET /v1/templates/:id |
| List templates | List all available templates | GET /v1/templates |
Webhook Actions
| Action | Description | Endpoint |
|---|---|---|
| Create webhook | Subscribe to events | POST /v1/webhooks |
| Delete webhook | Remove a subscription | DELETE /v1/webhooks/:id |
| List webhooks | List all webhooks | GET /v1/webhooks |
🔔 Triggers (Webhook Events)
Start workflows automatically when these events occur:
| Event | Description |
|---|---|
signature.request.created |
New signature request created |
signature.request.sent |
Invitation emails sent to signers |
signature.request.viewed |
Signer opened the document |
signature.request.completed |
All signers finished signing |
signature.request.declined |
Signer declined to sign |
signature.request.voided |
Request was cancelled |
signature.request.expired |
Request expired |
signature.request.reminded |
Reminder emails sent to pending signers |
signature.signer.completed |
Individual signer finished |
signature.signer.declined |
Individual signer declined |
💡 Example Workflows
1. Auto-Send Contracts from CRM
HubSpot: Deal Closed Won → HubSeal: Create from Template → Slack: Notify Sales Team
2. Archive Signed Documents to Cloud Storage
HubSeal Trigger: Document Completed → HubSeal: Download → Google Drive: Upload → Airtable: Log Record
3. Automated Follow-Up for Pending Signatures
Schedule: Daily 9 AM → HubSeal: List Documents → Filter: Pending > 3 days → HubSeal: Send Reminder → Email: Notify Sender
4. Employee Onboarding Automation
BambooHR: New Employee → HubSeal: Create from Template (Offer Letter) → Wait → HubSeal Trigger: Completed → Google Drive: Archive → Slack: Notify HR
5. Multi-Step Approval Workflow
Form Submission → HubSeal: Create Request (Manager) → Wait for Completion → HubSeal: Create Request (Director) → Wait for Completion → Email: Send Final Copy
🔧 Troubleshooting
Common Errors
| Error Code | Message | Solution |
|---|---|---|
401 |
Unauthorized | Check that your API key is correct and includes the Bearer prefix in the Authorization header |
403 |
Forbidden | Your API key lacks required scopes. Create a new key with the necessary permissions |
404 |
Not Found | Verify the document or template ID exists and belongs to your tenant |
409 |
Conflict | Cannot modify completed, voided, or cancelled documents |
422 |
Unprocessable Entity | Check that all required fields are provided and email addresses are valid |
429 |
Too Many Requests | Rate limit exceeded. Wait 60 seconds before retrying |
Webhook Issues
| Problem | Solution |
|---|---|
| Webhook not receiving events | Ensure your endpoint URL is HTTPS and publicly accessible |
| Signature verification failing | Check that you're using the correct webhook secret and the X-HubWF-Signature header |
| Duplicate events received | Implement idempotency using the event_id in the webhook payload |
Document Creation Issues
| Problem | Solution |
|---|---|
| Template fields not populating | Ensure field names in your request match exactly with template field names |
| Signer not receiving email | Verify the email address is valid and check spam folders |
| PDF upload failing | Ensure file is under 10MB and is a valid PDF format |
Still Need Help?
- Check the API Documentation
- Open an issue on GitHub
- Contact support at support@hubwf.com
🔐 Security
- API Key Authentication — Secure Bearer token authentication
- HMAC Webhook Signatures — Verify webhook authenticity with SHA-256 signatures
- Rate Limiting — 100 requests/minute per tenant
- Scope-Based Access — Granular API key permissions
Verifying Webhook Signatures
Webhooks include a signature header X-HubWF-Signature for verification:
const crypto = require('crypto');
function verifyWebhook(payload, signature, timestamp, secret) {
const signedPayload = `${timestamp}.${JSON.stringify(payload)}`;
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(signedPayload)
.digest('hex');
return signature === `sha256=${expectedSignature}`;
}
📖 API Reference
| Setting | Value |
|---|---|
| Base URL | https://api.hubwf.com/v1 |
| Authentication | Bearer Token (API Key) |
| Content-Type | application/json |
| Rate Limit | 100 requests/minute |
Request Headers
Authorization: Bearer hubwf_live_sk_your_api_key_here
Content-Type: application/json
Response Format
{
"success": true,
"document": {
"id": "doc_abc123",
"name": "Contract Agreement",
"status": "pending",
"created_at": "2026-01-17T10:00:00Z",
"expires_at": "2026-01-24T10:00:00Z"
},
"recipients": [
{
"id": "signer_xyz",
"name": "John Doe",
"email": "john@example.com",
"status": "sent",
"signing_url": "https://app.hubwf.com/sign/..."
}
]
}
Document Statuses
| Status | Description |
|---|---|
draft |
Document created but not yet sent |
sent |
Document sent to recipients, awaiting signatures |
viewed |
At least one recipient has viewed the document |
partially_signed |
Some recipients have signed, others pending |
completed |
All recipients have signed the document |
declined |
A recipient has declined to sign |
expired |
Document expired before all signatures collected |
voided |
Document was cancelled by sender |
🔗 Resources
| Resource | Link |
|---|---|
| HubSeal Website | https://hubwf.com |
| API Documentation | https://hubwf.com/docs |
| Create Account | https://app.hubwf.com/signup |
| Pricing | https://hubwf.com/pricing |
| npm Package | https://www.npmjs.com/package/n8n-nodes-hubseal |
🛠 Support
| Channel | Contact |
|---|---|
| support@hubwf.com | |
| GitHub Issues | Report a bug |
| Documentation | https://hubwf.com/docs |
📝 Changelog
v1.0.0 (2026-01-17)
- Initial release
- Document actions: Create, Get, List, Download, Remind, Void
- Template actions: Get, List
- Webhook actions: Create, Delete, List
- 9 webhook event triggers
📄 License
MIT © HubSeal
Built with ❤️ by the HubSeal Team
hubwf.com