@drcomgenius/n8n-nodes-anydoc
v0.1.1
Published
n8n community node that converts Word, PowerPoint, Excel, PDF, RTF, EPUB, CSV, and OpenDocument files to clean Markdown using @firecrawl/anydoc.
Maintainers
Readme
n8n-nodes-anydoc
An n8n community node that converts Word, PowerPoint, Excel, PDF, RTF, EPUB, CSV, and OpenDocument files into clean GitHub-Flavored Markdown, powered by @firecrawl/anydoc.
Perfect for feeding office documents into LLM/AI Agent nodes without dealing with format-specific parsers.
n8n is a fair-code licensed workflow automation platform.
Table of contents
- Installation
- Operations
- Node inputs
- Node outputs
- Supported formats
- Coolify / self-hosted Docker notes
- Troubleshooting
- Development
- License
Installation
Follow the official community-nodes install guide, then enter:
n8n-nodes-anydocas the npm package name in Settings → Community Nodes → Install.
The node will appear in the palette as AnyDoc.
Operations
- Convert to Markdown — reads a document from a binary property and returns Markdown as a JSON field.
Node inputs
| Field | Default | Description |
|---|---|---|
| Input Binary Field | data | Name of the binary property holding the source document (typical output of Read Binary File, HTTP Request, Google Drive, etc.). |
| Output Field | markdown | Name of the JSON field the resulting Markdown will be written to. |
| Options → Format Hint | Auto-Detect | Override auto-detection. Required for CSV (which has no content signature). |
| Options → Include Source Metadata | false | Adds sourceFileName and detectedFormat to the output JSON. |
| Options → Keep Input JSON | true | Merge the incoming item's JSON fields into the output. Disable to emit only the markdown field. |
Node outputs
A single main output. Each output item's JSON contains at least:
{
"markdown": "# Report Q4 …\n\n| … | … |\n| --- | --- |\n…"
}When Include Source Metadata is on:
{
"markdown": "…",
"sourceFileName": "report.docx",
"detectedFormat": "docx"
}If the node runs with Continue On Fail enabled and conversion fails (encrypted file, unsupported format, image-only PDF, …), the item becomes:
{ "error": "…", "code": "Encrypted" }Supported formats
| Family | Extensions |
|---|---|
| Word | .doc, .docx, .docm |
| PowerPoint | .ppt, .pps, .pot, .pptx, .pptm, .ppsx, .ppsm |
| Excel | .xls, .xlsx, .xlsm, .xlsb |
| OpenDocument | .odt, .ods, .odp |
| Rich Text Format | .rtf |
| EPUB | .epub |
| CSV | .csv (needs Format Hint = CSV) |
| PDF | .pdf (text-based only — no OCR) |
Image-only / scanned PDFs return Unsupported — use Firecrawl Parse or a dedicated OCR service for those.
Coolify / self-hosted Docker notes
This node depends on @firecrawl/anydoc, which ships prebuilt native binaries (Rust via napi-rs). It needs to match your container's architecture.
- Official
n8nio/n8nimages run on Debian (glibc) for bothlinux/amd64andlinux/arm64— the anydoc prebuild resolves automatically. No extra steps needed. - Make sure
/home/node/.n8nis a persistent volume in Coolify (default in n8n's Coolify template). The community package is installed there, so a rebuild without a volume will wipe it. - If you self-hosted on Alpine, the glibc prebuild will not run — switch to the Debian image or bake anydoc into a custom image with musl support.
Example minimal docker-compose.yml snippet Coolify can consume:
services:
n8n:
image: n8nio/n8n:latest
environment:
- N8N_COMMUNITY_PACKAGES_ENABLED=true
- N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:Troubleshooting
| Symptom | Cause / fix |
|---|---|
| Cannot find module '@firecrawl/anydoc-linux-x64-gnu' | The container is Alpine (musl). Use the Debian n8n image (n8nio/n8n:latest), which is glibc. |
| Error code Encrypted | The document is password protected. anydoc refuses to guess. Decrypt upstream. |
| Error code Unsupported on a PDF | Image-only PDF. Use OCR (Firecrawl Parse, Tesseract, etc.). |
| Empty markdown from CSV | Set Options → Format Hint = CSV. CSV has no content signature to auto-detect. |
| Tables come out weirdly aligned | anydoc emits GFM tables — Markdown viewers with strict column widths look strange; the rendered output is fine. |
Development
git clone https://github.com/your-github/n8n-nodes-anydoc
cd n8n-nodes-anydoc
npm install
npm run buildTo test in a local n8n:
npm link
cd ~/.n8n/nodes # or wherever custom nodes live
npm link n8n-nodes-anydoc
n8n startPublish:
npm login
npm publish --access publicThe package will then be installable through n8n's Community Nodes UI.
License
MIT — matches the upstream @firecrawl/anydoc license.
