Description
@turbodocx/n8n-nodes-turbodocx
Automate TurboDocx API and TurboSign digital signatures in your n8n workflows. Send signature requests, track document status, and download signed PDFsβall without writing code.
n8n is a fair-code licensed workflow automation platform.
Why This Node?
π Zero-Code Signature Automation – Build complete document signing workflows with drag-and-drop simplicity. No API knowledge required.
βοΈ Full TurboSign Integration – Access all TurboSign capabilities: prepare documents for review, send signature requests, track status, download signed PDFs, void requests, and resend emails.
β‘ Lightning Fast – Pure TypeScript implementation with zero runtime dependencies. Built for n8n Cloud compatibility and instant deployment.
π Production Ready – Built with n8n's best practices, comprehensive error handling, and full TypeScript support for reliable automation.
π οΈ Developer Friendly – Clean API design, comprehensive documentation, and detailed examples to get you automating in minutes.
Installation
n8n Cloud (Pending Community Node Verification)
- In your n8n instance, go to Settings β Community Nodes
- Click Install and enter:
@turbodocx/n8n-nodes-turbodocx - Click Install to add the node to your instance
Self-Hosted n8n
Follow the installation guide in the n8n community nodes documentation.
# From your n8n installation directory
npm install @turbodocx/n8n-nodes-turbodocx
# Restart n8n
Credentials Setup
Getting Your API Key
- Sign up for a TurboDocx account at https://turbodocx.com
- Log in to your TurboDocx dashboard
- Navigate to your account settings or API section
- Generate an API key
- Copy the API key
Adding to n8n
- In n8n, create a new TurboDocx API credential
- Paste your API key
- Set the Base URL:
https://api.turbodocx.com(default) - Save the credential
Operations
TurboSign
| Operation | What It Does | Use Case |
|---|---|---|
| Prepare for Review | Upload a document with signature fields and get a preview URL. No emails sent. | Preview field placement before sending to clients |
| Prepare for Signing | Upload a document and automatically send signature requests to all recipients | Send employment agreements, contracts, NDAs for signature |
| Get Document Status | Check the current status (draft, pending, completed, voided) | Verify all parties have signed before next step |
| Download Document | Download the final signed PDF | Archive to cloud storage or send to accounting |
| Void Document | Cancel a signature request and invalidate all links | Deal falls through, need to cancel request |
| Resend Email | Resend signature request to recipients who haven't signed | Send reminders after 3 days |
Supported File Types: PDF, DOCX, PPTX, or URLs to hosted files (S3, Google Drive, etc.)
Usage Examples
Simple Contract Signing Workflow
[Webhook Trigger] β [HTTP Request: Get Document] β [TurboDocx: Prepare for Signing] β [Slack: Notify Team]
Step-by-step:
- Add a Webhook node to receive contract data
- Add HTTP Request node to download document from your storage (supports PDF, DOCX, PPTX)
- Add TurboDocx node with operation TurboSign: Prepare for Signing
- File: Select binary data from previous node (or provide URL to hosted file)
- Recipients:
[ {"name":"{{$json.customerName}}","email":"{{$json.customerEmail}}","order":1}, {"name":"Company Rep","email":"legal@company.com","order":2} ] - Fields:
[ {"type":"signature","page":1,"x":100,"y":500,"width":200,"height":50,"recipientOrder":1}, {"type":"date","page":1,"x":320,"y":500,"width":100,"height":30,"recipientOrder":1}, {"type":"signature","page":1,"x":100,"y":600,"width":200,"height":50,"recipientOrder":2}, {"type":"date","page":1,"x":320,"y":600,"width":100,"height":30,"recipientOrder":2} ]
- Add Slack node to notify team when sent
Auto-Download Completed Contracts
[Schedule Trigger] β [TurboDocx: Get Status] β [IF: Status=Completed] β [TurboDocx: Download] β [Google Drive: Upload]
Step-by-step:
- Schedule: Run every hour
- TurboDocx: Get Status: Check document
{{$json.documentId}} - IF: Only continue if status is "completed"
- TurboDocx: Download: Get signed PDF
- Google Drive: Upload to contracts folder
Reminder System for Pending Signatures
[Schedule Trigger] β [TurboDocx: Get Status] β [IF: Pending > 3 Days] β [TurboDocx: Resend Email]
Document Generation + Signature Flow
[Webhook] β [TurboDocx: Generate Document] β [TurboSign: Prepare for Signing] β [Email: Notify Sender]
Step-by-step:
- Webhook: Receive customer data and contract details
- TurboDocx: Generate Document: Create personalized contract from template
- Returns
deliverableIdin output
- Returns
- TurboSign: Prepare for Signing:
- File Input Method: Select "Deliverable"
- Deliverable ID:
{{$json.deliverableId}}(from previous TurboDocx node) - Recipients:
[ {"name":"{{$json.customerName}}","email":"{{$json.customerEmail}}","order":1}, {"name":"Sales Rep","email":"sales@company.com","order":2} ] - Fields: Use template anchors or coordinates
- Email: Notify sender that signature request was sent
Why use this workflow: Seamlessly generate personalized documents and send them for signature in one automation. The deliverable ID links the generated document directly to the signature request.
Field Placement Methods
TurboSign supports two methods for placing signature fields on documents:
Method 1: Coordinate-Based (Absolute Positioning)
| Property | Type | Required | Description | Example |
|---|---|---|---|---|
type |
string | β | Field type | "signature", "date", "text" |
page |
number | β | PDF page number (1-indexed) | 1 |
x |
number | β | Horizontal position in pixels | 100 |
y |
number | β | Vertical position in pixels | 500 |
width |
number | β | Field width in pixels | 200 |
height |
number | β | Field height in pixels | 50 |
recipientOrder |
number | β | Which recipient fills this field | 1 |
Example:
{
"type": "signature",
"page": 1,
"x": 100,
"y": 500,
"width": 200,
"height": 50,
"recipientOrder": 1
}
Best for: Documents with consistent layouts where you know exact field positions.
Method 2: Template Anchor-Based (Dynamic Positioning)
| Property | Type | Required | Description | Example |
|---|---|---|---|---|
type |
string | β | Field type | "signature", "date", "text" |
recipientOrder |
number | β | Which recipient fills this field | 1 |
template.anchor |
string | β | Text pattern to find in document | "{sig}", "{client_signature}" |
template.placement |
string | β | Where to place field relative to anchor | "replace", "after", "below" |
template.width |
number | β | Field width in pixels | 200 |
template.height |
number | β | Field height in pixels | 50 |
Placement Options:
| Placement | Description |
|---|---|
replace |
Replace the anchor text with the field |
after |
Place field to the right of anchor |
before |
Place field to the left of anchor |
above |
Place field above anchor |
below |
Place field below anchor |
Example:
{
"type": "signature",
"recipientOrder": 1,
"template": {
"anchor": "{client_sig}",
"placement": "replace",
"width": 180,
"height": 50
}
}
Complete Template Anchor Example:
Document with anchors:
Client Signature: {client_sig} Date: {client_date}
Company Rep: {company_sig} Date: {company_date}
Fields configuration:
[
{"type": "signature", "recipientOrder": 1, "template": {"anchor": "{client_sig}", "placement": "replace", "width": 180, "height": 50}},
{"type": "date", "recipientOrder": 1, "template": {"anchor": "{client_date}", "placement": "replace", "width": 100, "height": 30}},
{"type": "signature", "recipientOrder": 2, "template": {"anchor": "{company_sig}", "placement": "replace", "width": 180, "height": 50}},
{"type": "date", "recipientOrder": 2, "template": {"anchor": "{company_date}", "placement": "replace", "width": 100, "height": 30}}
]
Best for: Document templates with variable content where exact positions may shift.
Field Types Reference
| Type | Description | Use Case |
|---|---|---|
signature |
Full signature field | Primary signature area |
initial |
Initial field (smaller) | Initial each page or clause |
text |
Text input field | Enter names, titles, or custom text |
date |
Date picker field | Signature date, start date, etc. |
checkbox |
Checkbox field | Agree to terms, opt-in selections |
Recipients Reference
[
{
"name": "John Doe",
"email": "john@example.com",
"order": 1
},
{
"name": "Jane Smith",
"email": "jane@example.com",
"order": 2
}
]
Signing Order:
- Recipients sign in order (order 1, then order 2, etc.)
- Use the same order number for parallel signing (both can sign at the same time)
File Input Methods
TurboSign supports 4 different ways to provide documents for signature requests:
| Method | What It Does | When to Use | Example |
|---|---|---|---|
| Upload File | Upload PDF, DOCX, or PPTX directly from workflow | Files from triggers, HTTP requests, or local storage | Binary data from previous node |
| File URL | Download from external URL (S3, Google Drive, Dropbox, etc.) | Documents hosted on cloud storage or CDN | https://bucket.s3.amazonaws.com/contract.pdf |
| Deliverable | Reference existing TurboDocx deliverable by UUID | Generated a document and want to send for signature | 550e8400-e29b-41d4-a716-446655440000 |
| Template | Use TurboDocx template by UUID (static, no data merge) | Pre-configured templates ready to send as-is | 660e8400-e29b-41d4-a716-446655440001 |
Supported File Formats
| Format | Extension | Auto-Convert to PDF |
|---|---|---|
.pdf |
No (already PDF) | |
| Microsoft Word | .docx |
β Yes |
| Microsoft PowerPoint | .pptx |
β Yes |
Common Workflow Patterns
Generate + Sign:
[TurboDocx: Generate] β [TurboSign: Prepare for Signing with Deliverable ID]
Download + Sign:
[HTTP Request: Get File] β [TurboSign: Prepare for Signing with Binary Upload]
Cloud Storage + Sign:
[TurboSign: Prepare for Signing with File URL from S3/Drive/Dropbox]
Compatibility
- n8n 1.60.0 or later
- Compatible with n8n Cloud (zero runtime dependencies)
- Works with self-hosted n8n instances
Resources
Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
Support
For issues or questions:
- GitHub Issues: https://github.com/turbodocx/n8n-nodes-turbodocx/issues
- Discord: Join our community
Related Packages
| Package | Description |
|---|---|
| @turbodocx/html-to-docx | Convert HTML to Word documents |

