Use KikiDoc in n8n¶
Generate PDFs inside an n8n workflow — no code. The KikiDoc community node renders HTML or a stored template to a PDF and attaches it as a binary you can email, upload to Drive/S3, or save to disk.
Install the node¶
- In n8n: Settings → Community Nodes → Install.
- Enter the package name
n8n-nodes-kikidocand confirm. - The KikiDoc node and KikiDoc API credential become available.
(Self-hosted n8n must have community nodes enabled in its settings.)
Add your credential¶
- Create a new KikiDoc API credential.
- API Key — your key from app.kikidoc.dev → API keys.
- Base URL —
https://api.kikidoc.dev(default). - Save. n8n runs a quick reachability check against
/healthz.
The key is injected as X-API-Key on every request — you never type it into the node body.
Operations¶
| Operation | Does | Tier |
|---|---|---|
| Render HTML | HTML (+ data) → PDF | Free+ |
| Render Template | stored template name (+ data) → PDF | Pro |
| List Templates | one item per stored template | Pro |
Both render operations attach the PDF as a binary property (default field data, file
document.pdf) and add {operation, fileName, mimeType, fileSize} to the item JSON.
Example: invoice from HTML, emailed as a PDF¶
Manual Trigger
→ KikiDoc (Render HTML)
HTML: <h1>Invoice {{number}}</h1><p>Total: {{total}}</p>
Data: number = INV-1001, total = $99.00
PDF Options: Format = A4, Margin Top = 20mm
Put Output In Field: data
File Name: invoice-1001.pdf
→ Send Email (attach binary `data`)
Example: stored template → Google Drive (Pro)¶
Webhook (order JSON)
→ KikiDoc (Render Template)
Template Name: order-confirmation
Data: customer = {{$json.customer}}, order_id = {{$json.id}}
Enable Security: true → User Password = {{$json.id}}, Allow Print = true
→ Google Drive (Upload, binary `data`)
Node fields¶
- Data (Token Substitution) — key/value pairs filled into
{{token}}placeholders. - PDF Options — page format (A3/A4/Letter/Legal/Tabloid), orientation, per-side margins
(
20mm,1in,0), page numbers. - Enable Security — user/owner passwords + six permission flags (annotations, extract, modify, assemble, print, high-res print). Only flags you set are sent.
Errors
Tier gating is server-side: a Free key calling Render Template gets 403; over quota you get
429. See Pricing & limits.
Prefer raw HTTP? Any tool that can POST JSON works — see the Quickstart.