pdfkraft

n8n community node for PDFKraft — generate PDFs and images via the PDFKraft API

Package Information

Released: 3 mo ago
Downloads: 485 weekly / 1,013 monthly
Latest Version: 1.0.2

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:

  1. Go to pdfkraft.com/dashboard/account and copy your API key.
  2. In n8n, go to Credentials → New → PDFKraft API.
  3. Paste your API key. Leave the Base URL as https://api.pdfkraft.com/api/v1.
  4. 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

  1. In PDFKraft, go to Settings → Webhooks → Create Endpoint.
  2. Set the URL to the webhook URL shown in your n8n trigger node.
  3. Copy the Secret shown after creation.
  4. 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:

  1. HTTP Request (or any trigger) → provides order data
  2. 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
  3. Google Drive → Upload File
    • File Name: {{ $json.filename }}
    • Binary Property: data

Resources

Discussion