---
title: "03 n8n Node"
canonical_url: https://mdflow.cz/share/c/h0L7MvX5Cy5sST3qPnApqHOmrQ36JTVy169qJMtDMya9Kc30zm04cg9OuPSSPwvj/4fbc5f67-b6ac-4fed-8916-3ccfa4eb8632
md_url: https://mdflow.cz/share/c/h0L7MvX5Cy5sST3qPnApqHOmrQ36JTVy169qJMtDMya9Kc30zm04cg9OuPSSPwvj/4fbc5f67-b6ac-4fed-8916-3ccfa4eb8632.md
visibility: public
---

# n8n Node

The MDflow community node connects your workspace to [n8n](https://n8n.io), so workflows can create, read, organize and share documents — and react when new ones appear.

> **Requires MDflow Pro**, because the node authenticates with a Personal Access Token.

## Installing

In n8n: **Settings → Community Nodes → Install**, then enter the package name:

```
n8n-nodes-mdflow
```

See n8n's [community nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) if you need the full walkthrough.

## Setting up the credential

The credential is called **MDflow API**, and it has exactly one field:

- **Personal Access Token** — your `mdf_…` token, created at [mdflow.cz/settings](https://mdflow.cz/settings).

Press **Test** and n8n verifies the token by listing your workspaces. If that succeeds, you are connected.

There is **no OAuth option** and **no base URL field** — the node always talks to `https://mdflow.cz`. Self-hosted or local MDflow instances are not supported.

## Two nodes

- **MDflow** — the action node. Performs operations.
- **MDflow Trigger** — a **polling** trigger. Starts a workflow when something new appears. There is no webhook trigger.

## Operations

The action node has four resources — **Document**, **Folder**, **Share** and **Workspace** — with 22 operations between them.

### Document

| Operation | Required | Optional |
| --- | --- | --- |
| **Create** | Folder (dropdown), Title, Body | — |
| **Get** | Document ID | — |
| **Get Many** | — | Filter by Workspace (dropdown) |
| **Update Body** | Document ID, Body | — |
| **Rename** | Document ID, Title | — |
| **Move** | Document ID, Folder (dropdown) | — |
| **Delete** | Document ID | — |
| **Set Sharing** | Document ID, Make Public, Allow Comments | — |

> **Update Body replaces the entire body.** It does not append. To add to a document, Get it first, concatenate in your workflow, then Update Body with the result.

### Folder

| Operation | Required | Optional |
| --- | --- | --- |
| **Create** | Name, Workspace (dropdown) | Description, Parent Folder ID |
| **Get** | Folder ID | — |
| **Get Documents** | Folder ID | — |
| **Get Many** | — | — |
| **Update** | Folder ID | Name, Description, Parent Folder ID |
| **Delete** | Folder ID | — |

Leaving **Parent Folder ID** empty on Create puts the folder at the workspace root. **Folder → Get Many** returns folders across **every** workspace — there is no filter. **Delete also deletes the documents inside.**

Folder **Description** is worth setting from a workflow: it is MDflow's primary retrieval signal for AI agents (see [02 Folders and Subfolders](/doc/ee296c64-ecda-49e9-a03f-1834eb1746d1)).

### Workspace

| Operation | Required | Optional |
| --- | --- | --- |
| **Create** | Name | Description |
| **Get Many** | — | — |
| **Update** | Workspace ID | Name, Description |
| **Delete** | Workspace ID | — |

There is no single-workspace **Get** — use Get Many. **Delete removes every folder and document inside.**

### Share

Per-document private email shares. **Document ID is required for all four.**

| Operation | Required | Optional |
| --- | --- | --- |
| **Add** | Document ID, Email | Allow Comments |
| **Get Many** | Document ID | — |
| **Remove** | Document ID, Share ID | — |
| **Remove All** | Document ID | — |

## Dropdowns — an asymmetry to know about

Two fields load live from your account: **Folder** (listed by full path) and **Workspace** (listed by name), both alphabetical.

But these dropdowns appear **only** on fields named *Folder Name or ID* and *Workspace Name or ID* — which means Document Create, Document Move, the Document Get Many filter, Folder Create, and the trigger's event fields.

**Every other ID field is free text.** Document ID, Folder ID, Workspace ID, Parent Folder ID and Share ID all require a raw UUID.

In practice: you pick a folder from a list when *creating* a document, but must paste a UUID to get, rename or delete one. Chain a **Get Many** earlier in the workflow to obtain the IDs you need.

## The trigger

Three events:

| Event | Scope |
| --- | --- |
| **New Document** | A folder — **required**, pick one |
| **New Folder** | A workspace — optional; blank means all workspaces |
| **New Workspace** | Your whole account |

Behaviour worth understanding before you rely on it:

- **The first poll emits nothing.** It records what already exists, so you are not flooded with your entire history. Events fire from the **second** poll onward.
- **Deduplication is by item ID**, capped at the 10,000 most recent. Older IDs are dropped.
- **Fetch Test Event returns only the single most recent item**, for field mapping.
- **New Folder filters after fetching** — it retrieves all folders, then narrows to your chosen workspace.
- **Every poll re-fetches the full list**, because MDflow's API has no "changed since" parameter. Keep the polling interval sensible on a large account.

## Rate limits and pagination

Two rough edges to design around:

- **MDflow rate-limits to 60 requests per minute** per token, returning `429` with a `Retry-After` header. **The node does not retry or back off** — add error handling in your workflow if you loop over many items.
- **There is no pagination.** No Get Many operation has a Return All or Limit field; each returns whatever the API returns.

## AI agent tools

The action node is marked usable as a **tool** by n8n's AI Agent nodes, so an agent inside n8n can call MDflow operations directly.

## Example workflows

- **Capture** — an inbound email or form submission becomes a document in a chosen folder.
- **Publish** — on approval, Set Sharing to make a document public, and pass the link onward.
- **Distribute** — when a New Document appears in a folder, Share → Add to email it to a reviewer.
- **Digest** — on a schedule, Folder → Get Documents, summarize, and write the result back with Document → Create.
