Package Information
Documentation
n8n-nodes-pdfkraft
An n8n community node for PDFKraft — generate PDFs and images from templates using your n8n workflows.
Installation
In your n8n instance, go to Settings → Community Nodes → Install and enter:
n8n-nodes-pdfkraft
Credentials
After installation, create a PDFKraft API credential:
- Go to pdfkraft.com/dashboard/account and copy your API key.
- In n8n, go to Credentials → New → PDFKraft API.
- Paste your API key. Leave the Base URL as
https://api.pdfkraft.com/api/v1. - Click Test to confirm the key is valid before saving.
PDFKraft Node
Provides six operations:
Generate Document
Queues a document for generation. Turn on Wait For Completion (on by default) to poll until the document finishes and automatically download the file as binary data — turn it off to fire-and-forget and return immediately with just the document ID (handle completion via a webhook trigger instead).
Payload can be entered as raw JSON or as key-value pairs — switch with the Payload Input field. Key-value entries whose value starts with { or [ are parsed as JSON automatically.
Inputs: Template, Payload Input (JSON / Key-Value Pairs), Payload, Filename (optional), Wait For Completion, Timeout (seconds, if waiting), Output Field Name (if waiting)
Output (not waiting): { id, status: "pending", ... }
Output (waiting): JSON document record (id, status, download_url, filename, ...) + Binary file in the configured output field, if generation succeeded
Get Document
Fetches the current status and metadata of any document by ID.
Inputs: Document ID
Output: Full document record
Download Document
Downloads a completed document as binary data.
Inputs: Document ID, Output Field Name
Output: JSON (documentId, filename, download_url) + Binary file
Delete Document
Permanently deletes a document and its stored file.
Inputs: Document ID
Output: { success: true, documentId }
List Documents
Returns generated documents with optional status filtering and pagination.
Inputs: Status Filter (All / Success / Pending / Failure), Limit or Return All
Output: One item per document
List Templates
Returns all templates in your account.
Output: One item per template
If Continue on Fail is enabled on the node, a failing item outputs { error: message } instead of stopping the whole workflow.
PDFKraft Trigger Node
Listens for webhook events from PDFKraft and triggers your workflow when documents are generated.
Setup
- In PDFKraft, go to Settings → Webhooks → Create Endpoint.
- Set the URL to the webhook URL shown in your n8n trigger node.
- Copy the Secret shown after creation.
- In n8n, paste the secret into the Webhook Secret field.
Options
| Field | Description |
|---|---|
| Webhook Secret | The secret from your PDFKraft webhook endpoint. Used to verify request authenticity. |
| Verify Signature | Recommended. Rejects requests that don't have a valid HMAC signature. |
| Event Types | Choose Document Succeeded, Document Failed, or both. |
| Template Filter | Only fire for documents from a specific template. Select "All Templates" to receive all events. |
Output
The trigger outputs the full webhook payload:
{
"event": "document.success",
"document": {
"id": "...",
"status": "success",
"filename": "invoice-1234.pdf",
"download_url": "https://...",
"document_template_identifier": "invoice",
"meta": {},
"generated_at": "2026-06-22T10:00:00.000Z"
}
}
Example Workflow
Generate an invoice PDF and save it to Google Drive:
- HTTP Request (or any trigger) → provides order data
- PDFKraft → Generate Document (Wait For Completion: on)
- Template:
Invoice [PDF] - Payload:
{ "order_id": "{{ $json.id }}", "customer_name": "{{ $json.customer }}", "total": "{{ $json.total }}" } - Filename:
invoice-{{order_id}}.pdf
- Template:
- Google Drive → Upload File
- File Name:
{{ $json.filename }} - Binary Property:
data
- File Name: