Word

Put Word documents in a flow: turn a form or a CRM record into a contract from your own template and send it as a PDF, keep the minutes an AI Node writes as a proper .docx, read what someone dropped in a folder, add to a running log, fix a name everywhere — with the action node — and fire a flow when a document is added or changed in a folder with the trigger. The action node can also be handed to an AI Node as an AI toolkit. It works on the Word documents in the connected account's OneDrive.

ℹHow it edits. Microsoft Graph — the API HostWebhook uses — can store, convert and share a Word document, but not change the text inside it. So HostWebhook downloads the .docx, makes the change itself and saves it back to OneDrive as a new version of the same file — same link, same place, and the earlier version stays in the file's version history.

Connect Word

Click Connect Word — in the node's credential picker or in Settings → Credentials — and sign in with Microsoft. A personal account (outlook.com, hotmail.com, live.com) and a work or school account both work. One credential is one account and its OneDrive; the node acts as that account. Microsoft asks for two permissions:

  • Have full access to your files — everything the node does with the account's own documents: find, read, create, change, convert and share them.
  • Read all files that you have access to — read only, and only because Microsoft requires it to send the trigger's change notifications on a work or school OneDrive. HostWebhook doesn't write to documents other people shared with you.
ℹOnly Word. It is its own connection: the OneDrive, Excel, Outlook and Outlook Calendar credentials don't work here, and this one doesn't work in them. Each Microsoft 365 service is connected on its own, with its own consent.
  • Work accounts. Neither permission needs an administrator, but some organizations don't let their people approve apps on their own: Microsoft then shows Need admin approval, and an admin approves HostWebhook once, in Microsoft Entra.
  • Revoking. Remove HostWebhook from account.microsoft.com → Privacy → Apps and services (personal) or myapps.microsoft.com (work), and the credential stops working; Reconnect it from Settings → Credentials.

The action node

Eleven operations, in four groups. A new node starts with none picked; pick one and its fields appear.

GroupOperationWhat it doesOneDrive
DocumentsList documentsThe Word documents in a folder, last changed first.reads
DocumentsFind documentsBy words in their name or in their text.reads
DocumentsGet documentIts details: name, link, size, folder, who changed it and when.reads
DocumentsRead documentIts text, as Markdown (headings, lists, bold, tables) or plain text.reads
DocumentsDownload documentA copy in HostWebhook (_file) for the next node — as .docx, or as PDF.reads
CreateCreate documentA new .docx written from Markdown or plain text.writes
CreateFill templateA new .docx from a template, with every {{field}} replaced by its value.writes
EditAppend textAdd Markdown or plain text at the end of a document.writes
EditReplace textFind text and replace it everywhere, keeping its formatting.overwrites
Convert & shareSave as PDFA PDF copy of the document, saved in OneDrive.writes
Convert & shareShare linkA link to read the document, or to edit it.shares

Every text field takes a template: {{payload.id}} for the document that fired the Word trigger, {{payload.customer}} from a form.

⚠The operations that write change OneDrive for real on every run — Run test included — and Share link opens a document to other people. Point the first tests at a copy.

Picking a document or a folder

Document, Template and Folder are picked from the account's OneDrive with the same picker as the OneDrive node: open folders to go down, use the path at the top to go back up, or search by name. My files is the top of the OneDrive, and a folder field left empty means the top — or, where the field says so, the document's own folder. The list only shows the documents the operation can work with (see Which documents).

To take it from the flow instead, choose Type a path, an ID or a template under the list:

  • An ID — {{payload.id}} from the Word trigger or from another Word step (List documents, Create document…). A {{payload.parentId}} is a folder ID: the folder the document is in.
  • A path from the top of OneDrive, starting with / and written as you see it, spaces included: /Contracts/ACME.docx, or /Contracts/{{payload.year}} for a folder.

When the Word and OneDrive credentials are the same Microsoft account, a document from the OneDrive node or its trigger works here too, by its {{payload.id}} or {{payload.path}}. Changing the node's credential forgets the items picked from the other account — an ID doesn't exist in another OneDrive — and keeps paths and templates. A path or ID that finds nothing fails with Check the ID — or the path, which starts at the top of OneDrive.

Which documents

Reading, filling and editing work on the modern Word format — the zipped XML of a .docx — which HostWebhook opens itself. Older formats can still be looked up, downloaded, converted to PDF by Microsoft and shared:

OperationWorks on
List documents, Find documents, Read document.docx, .docm, .dotx, .dotm
Fill template, Append text, Replace text.docx, .dotx — not documents with macros
Save as PDF, and Download document as PDF.docx, .doc, .dot, .dotx, .dotm, .odt, .rtf — not .docm
Get document, Download document, Share linkAll of the above, the old .doc and .dot included

A document HostWebhook changes keeps its format, so documents with macros (.docm, .dotm) are only read: rewritten without their macros Word would refuse to open them. Microsoft doesn't convert .docm to PDF; HostWebhook says so before calling it. A .docx that is password-protected or encrypted with a sensitivity label can't be opened, and the error says so.

Reading a document

Read document returns the text — to hand to an AI Node as {{payload.text}}, or to a Transform. Format is Markdown by default:

  • Headings come from Word's heading styles, whatever the language: Título 1 is a # too. Title and Subtitle are headings as well, and quotes start with >.
  • Lists keep their bullets, numbers and indentation; bold, italic and strikethrough are kept, and links come as [text](url).
  • Tables come as Markdown tables, the first row as the header; a cell's paragraphs are joined with <br>.
  • Text boxes come right after the paragraph they are anchored to; a field shows its result (the date, the page number); with tracked changes, the text reads as if every change were accepted.

text gives the same without marks: lists with - and 1., table cells separated by tabs. Headers and footers adds their text apart, in headers and footers. Max characters is 50,000 by default and 200,000 at most; a longer text comes back cut, with truncated: true. Images aren't read.

The output is the document's details plus the text and a few counts:

jsonRead document — output (some details left out)
{
  "id": "D4648F06C91D9D3D!5678",
  "name": "Contract ACME.docx",
  "title": "Contract ACME",
  "path": "/Contracts/Contract ACME.docx",
  "webUrl": "https://onedrive.live.com/edit?id=…",
  "format": "markdown",
  "text": "# Service agreement\n\nBetween **ACME Inc.** and …",
  "characters": 18342,
  "words": 3120,
  "paragraphs": 96,
  "tables": 2,
  "truncated": false
}

Downloading

Download document saves a copy in HostWebhook as _file — the same file reference Gmail, Outlook and OneDrive use — so the next node attaches it to an email in Outlook or Gmail with {{payload._file}}. As docx (the default) is the file as it is; pdf is converted by Microsoft on the way, and named after the document with .pdf. The document in OneDrive doesn't change.

ℹUp to 16 MB per file — or your plan's per-file limit, if it is lower. That is the most HostWebhook keeps per file. As docx, a bigger document is refused before anything is downloaded, with its size in the error. As pdf, the PDF's size is only known as it arrives: the download stops at the limit and the run fails with is over the … HostWebhook can keep per file, without the size. Read document works on documents up to 25 MB without keeping them.

Listing and finding

List documents returns the Word documents of one folder — not its subfolders — last changed first, or A to Z with Order. How many is 25 by default and 100 at most. It looks at the first 1,000 items of the folder; truncated: true says there were more.

Find documents finds documents by words in their name or in their text, across the whole OneDrive or in a Folder and its subfolders, best match first. Microsoft indexes new documents on its own schedule: one saved a minute ago can take a few minutes to show up. Documents other people shared with you aren't included.

Both return the documents in a documents list, with count. To do something with each one, put a Split or a Loop after it. Get document returns one document's details — the shape below.

What a document looks like

Every operation that returns a document returns it in the shape of a OneDrive file, plus its title — the name without the extension — and so does the trigger:

jsonGet document — output
{
  "id": "D4648F06C91D9D3D!5678",
  "name": "Contract ACME.docx",
  "title": "Contract ACME",
  "kind": "file",
  "size": 18234,
  "mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
  "extension": "docx",
  "path": "/Contracts/Contract ACME.docx",
  "parentId": "D4648F06C91D9D3D!1234",
  "parentPath": "/Contracts",
  "driveId": "d4648f06c91d9d3d",
  "webUrl": "https://onedrive.live.com/edit?id=…",
  "childCount": null,
  "createdAt": "2026-10-01T15:12:44Z",
  "lastModifiedAt": "2026-10-01T15:14:02Z",
  "createdBy": { "name": "Ana García", "email": null, "app": null },
  "lastModifiedBy": { "name": "Ana García", "email": null, "app": null },
  "contentHash": "…",
  "eTag": "…",
  "cTag": "…"
}

webUrl opens the document in Word for the web. path and parentPath can be null when Microsoft doesn't say where a document is — search results, mostly. Dates are UTC.

Creating a document

Create document writes a new .docx named File name (.docx is added if it is missing) in Folder — empty: the top of OneDrive. Content is Markdown by default; with Content format text, every line is a paragraph. Page size is Letter by default, or A4. Content can be empty: an empty document is a document.

From Markdown it makes a real Word document, with Word's own styles — so the reader can restyle it in Word:

  • # to ###### are Heading 1 to Heading 6 — they show up in Word's navigation pane.
  • **bold**, *italic*, ~~strikethrough~~, `code` and [links](https://…).
  • Bulleted and numbered lists, nested, as real Word lists — each numbered list starts at its own number. Task lists come out as ☐ and ☑.
  • Tables with borders and a bold first row, aligned as the Markdown says; quotes; code blocks in a monospaced font; and --- as a line across the page.
  • No images: an image becomes its description and a link to it. HTML tags are dropped, their text kept.
⚠Content is a HostWebhook template. Every {{…}} in it is filled from the flow when the node runs, and one with no value comes out empty. So a Word template with {{fields}} in it can't be written here: type it in Word, or have an AI Node create it with the toolkit — the model's arguments are used as written.

If the name is taken

Create document, Fill template and Save as PDF ask what to do when the folder already has a file with that name. Nothing is ever overwritten unless you choose to:

  • fail (the default) — stop and create nothing, with A file named “…” already exists in …. Running the same flow twice doesn't make a second copy.
  • rename — keep both: the new one is Contract ACME (2).docx, then (3), and so on.
  • replace — overwrite the file with that name.

Also as a file returns the new document as a _file too, ready to attach to an email in the next node — up to 16 MB, or your plan's per-file limit. The output is the new document with created: true, so {{payload.id}} and {{payload.webUrl}} are the new one's.

⚠A file that doesn't fit doesn't fail the run. The document is already saved in OneDrive, so when it is over that limit (or HostWebhook can't keep it) the operation still succeeds, and the output has _fileSkipped with the reason instead of _file — so a node next that attaches {{payload._file}} has no file to attach. When the attachment matters, check {{payload._fileSkipped}} first. The same goes for Fill template and Save as PDF.

Filling a template

Fill template makes a new document from a Word document of yours with {{field}} markers typed in it, replacing each marker with its value. The template doesn't change, so one template makes every contract, quote or letter.

In Word, type the markers where the values go — Dear {{name}} in the text, {{total}} in a table cell, {{date}} in the header — and format each whole marker the way its value should look (if its parts differ, the value takes the formatting of where the marker starts). Markers are found in the text, tables, headers, footers, footnotes, endnotes and text boxes, even when Word stores a marker in several pieces (it does, after spell-checking or a format change halfway through). A marker must stay inside one paragraph.

In the node, Template is that document (a .docx or a .dotx Word template), and Fields the values, as JSON — this box is a HostWebhook template, so the values come from the flow:

jsonFields
{
  "name": "{{payload.name}}",
  "date": "{{payload.date}}",
  "total": "{{payload.total}}",
  "items": "{{payload.items}}",
  "customer": { "company": "{{payload.company}}" }
}
  • A marker finds its value by its exact name first, then by a dotted path — {{customer.company}} — and last without minding capital letters. Up to 500 fields; {{payload.fields}} alone works when an earlier node already built the object.
  • Text, numbers and true/false are written as they are. A list becomes one line per item. An object is written as JSON. A line break in a value is a line break in Word.
  • Fields with no value: keep (the default) leaves {{field}} visible in the new document, so a gap is seen, not hidden; empty removes it; fail creates nothing and names the missing fields.
  • Only plain {{markers}}: no loops, no conditions. Word's own mail-merge fields and content controls aren't used.

File name, If the name is taken and Also as a file work as in Create document; Folder empty puts the new document next to the template. From a .dotx, the result is an ordinary .docx. The output says what happened:

jsonFill template — output (some details left out)
{
  "created": true,
  "id": "D4648F06C91D9D3D!5702",
  "name": "Contract Ana Ruiz.docx",
  "title": "Contract Ana Ruiz",
  "path": "/Contracts/Contract Ana Ruiz.docx",
  "webUrl": "https://onedrive.live.com/edit?id=…",
  "template": { "id": "D4648F06C91D9D3D!5690", "name": "Contract template.docx" },
  "filled": ["name", "date", "total"],
  "missingFields": ["vat_number"],
  "unusedFields": ["items"],
  "replacements": 4
}

missingFields are markers in the template with no value; unusedFields are values with no marker — a typo on either side shows up here.

Adding to a document

Append text adds Text to add — Markdown or plain text, as in Create document — at the end of a document, after everything already there. With Start on a new page it begins on a page of its own. Nothing already in the document changes, its styles and lists included, so a document someone else made doesn't get rearranged:

  • Headings use the document's own Heading styles when it has them; otherwise they are bold, larger text.
  • Lists are written with • and 1. as text, not as Word lists; quotes are in italics and indented; code is in a monospaced font; links work.

The output is the document with appended (paragraphs and characters added).

Replacing text

Replace text finds Find in the document and replaces every occurrence with Replace with — empty deletes it. The replacement takes the formatting of the text it replaces (of where it starts, if that text mixes formats). It looks in the body, text boxes, headers, footers, footnotes and endnotes; Body only leaves headers, footers and notes alone. Match case only replaces text with the same capital letters. Text that runs across two paragraphs isn't found.

Find is the exact text, but the box runs HostWebhook templates: a {{field}} typed there is filled from the flow before searching. To fill markers, use Fill template. When nothing matches, the document isn't saved again and the output says replacements: 0 and unchanged: true.

While someone is editing

Append text and Replace text save over the same document, so before saving HostWebhook checks that nobody saved it in between. If someone did, it starts over once with the new version; if it changed again, nothing is saved and the run fails with changed while it was being edited. Nothing was saved; run it again. A document that is locked — open in Word for the desktop, or checked out on a work account — fails with is locked; try again once it is closed.

Saving as PDF

Save as PDF has Microsoft convert the document and saves the PDF in OneDrive — next to the document, or in Folder. File name empty is the document's name with .pdf. The document doesn't change, and the output is the PDF — {{payload.id}} is the PDF's — with source naming the document it came from. If the name is taken and Also as a file work as in Create document. To get the PDF for an email without keeping it in OneDrive, use Download document as PDF instead.

Sharing

Share link makes a link to the document. People with the link can view it (the default) or edit it. Who is the account's default unless you pick anonymous (anyone with the link) or organization (only people in your company — work accounts). Expires is never by default; a time with no offset is read in the workspace's time zone. Asking twice for the same kind of link returns the same link, with created: false.

jsonShare link — output
{
  "id": "D4648F06C91D9D3D!5678",
  "name": "Contract ACME.docx",
  "webUrl": "https://onedrive.live.com/edit?id=…",
  "link": {
    "url": "https://1drv.ms/w/s!…",
    "type": "view",
    "scope": "anonymous",
    "expiresAt": null,
    "created": true
  }
}

To give specific people access, use the OneDrive node's Share with people.


AI toolkit mode

Once Word is connected, the node asks for a Mode. AI toolkit turns it into ten tools that an AI Node — or an MCP client, through one of your MCP servers — calls by name: “find the ACME contract and summarize it”, “write today's minutes as a document”, “make a contract for Ana from the template”.

ToolArgumentsStarts
list_word_documentsfolder_id? · order_by? · max_results?available
find_word_documentsquery · folder_id? · max_results?available
get_word_documentdocument_idavailable
read_word_documentdocument_id · format? · include_headers_footers?available
create_word_documentfile_name · content? · content_format? · folder_id? · page_size?available
create_word_document_from_templatetemplate_id · fields · file_name · folder_id? · missing_fields?available
append_to_word_documentdocument_id · content · content_format? · page_break_before?available
replace_text_in_word_documentdocument_id · search · replace_with? · match_case? · body_only?blocked
create_pdf_from_word_documentdocument_id · folder_id? · file_name?available
share_word_documentdocument_id · link_type? · scope? · expires_at?blocked

A document_id, template_id or folder_id is an ID the model got from another tool, or a path starting with /. fields is a JSON object written as text, like {"name":"Ana","date":"1 Oct 2026"}. The model's arguments are used as written: a {{…}} in them is not filled in — which is how an agent can write a Word template with markers in it.

What you control

  • Replacing and sharing start blocked. replace_text_in_word_document changes text that is already there, and share_word_document opens a document to other people, which can't be undone by removing the link afterwards. Unblock the ones the agent should have in the node's tool list. Any other tool can be blocked the same way — creating documents, for an agent that should only read.
  • Folder the AI can use. Empty, the agent works on the whole OneDrive. Pick a folder and it only reaches the documents inside it and its subfolders: a document or folder outside is refused before anything is read or changed, and searches and lists stay inside. When the model names no folder, a new document — create_word_document or create_word_document_from_template, wherever the template is — goes to that folder, and a PDF from create_pdf_from_word_document next to its document, which is already inside.
  • Nothing is overwritten. When the name is taken, the tools that create a document always keep both — the new one gets a number. The model has no files of the flow and doesn't get files back: Download document isn't a tool — read_word_document gives it the text instead.
  • Edit links. Off by default: a link_type of edit is refused with This node only allows view links. Turn on Let the AI create edit links in the node's toolkit settings to allow them — once share_word_document is unblocked.
  • Characters per call sent to the model. 20,000 by default (from 1,000 to 200,000). A longer document read with read_word_document comes back cut, and says so.

Testing a tool

⚠Only a tool call picks the tool. In AI toolkit mode, only an AI Node, an MCP client or a voice agent chooses which tool the node runs. Run Test, a flow or a webhook run the operation saved on the node: an operation in their payload that names another tool is refused.
✦To try a tool, call it from an AI Node or from an MCP client. Its arguments look like this:
jsonA tool call
{ "operation": "read_word_document", "document_id": "/Contracts/Contract ACME.docx", "format": "markdown" }
⚠A node in toolkit mode is not part of the pipeline. Events arriving through connections made before you switched are refused — the node only runs the tool it is asked for.

The trigger

Pick a Word credential, the folder to watch — from the account's own OneDrive, with Watch this folder. There is no default: until a folder is picked the trigger can't be tested or activated. For the whole OneDrive, pick Watch this folder on My files (the top) and turn on Also documents in its subfolders. Then what fires it:

  • New document — a document the trigger hadn't seen in the folder: created, uploaded, copied or moved into it.
  • Document changed — its content changed. Renaming it, moving it inside the folder or sharing it doesn't fire — and that holds for documents that were already there when you activated.
  • New or changed — both. Leaving it empty means this.

Only Word documents fire it — .docx, .docm, .dotx and .dotm; a spreadsheet or a PDF dropped in the same folder doesn't. A removed document doesn't fire it either; for that, the OneDrive trigger has File removed. Optionally:

  • Also documents in its subfolders — off by default: only the folder's own documents. On, it watches up to 200 subfolders; the trigger's activity says when more didn't fit.
  • Name contains something (upper or lower case).
  • Wait until editing stops (seconds) — see below. 60 by default; 0 fires right away.
  • Include the text — the document arrives with its plain text in text, up to 20,000 characters (textTruncated says when it was cut). A document over 25 MB arrives with text: null and textSkipped.
  • Attach the file — the document arrives with its _file, up to 16 MB (less if your plan's file limit is lower). A bigger one, or one that doesn't fit in your storage, arrives without it, and _fileSkipped says why.

Waiting until editing stops

Word for the web saves every few seconds while someone types, and each save is a change. So the trigger waits until a document has gone Wait until editing stops seconds without a save, and then fires once, with the document as it was left — ten minutes of typing are one run, not a hundred. A document that keeps changing fires after 30 minutes at most. With 0, it fires as soon as a change is seen.

How it fires

Activating subscribes to the account with Microsoft. Microsoft's notification only says that something changed in the OneDrive, so HostWebhook then asks what changed since the last time and keeps the Word documents of the watched folder. Each notification carries a secret that belongs to this trigger, and HostWebhook checks it before reading anything. Each change is delivered once, even when Microsoft sends several notifications for it; two changes to the same document, with time to stop editing in between, are two runs. Deactivating deletes the subscription.

ℹUsually a minute or two — not always. Microsoft normally notifies within a minute, then the trigger waits until editing stops. But Microsoft doesn't promise less than six hours, and it sends no notice when one is lost — so HostWebhook also checks the folder on its own about every 15 minutes. Microsoft's subscriptions expire; HostWebhook renews them on its own.

The trigger's page says how it is getting the changes:

  • Microsoft notifies HostWebhook — the normal case.
  • Shares Microsoft's notifications with another Word trigger on this account — Microsoft takes only one subscription per account, so a second Word trigger on the same account listens to the first one's. Each still watches its own folder with its own filters. Deactivating the first hands the subscription over. (A OneDrive trigger on the same account doesn't count: it is another connection.)
  • Checks every 5 minutes — when Microsoft won't take the subscription: on a work account whose organization blocks it (the trigger tries to subscribe again once a day), or when the same Microsoft account is already subscribed from another HostWebhook organization (it tries again every hour).

No loops

A trigger on /Contracts followed by an Append text to the same document would fire itself forever. It doesn't: every version a Word node saves — Create document, Fill template, Append text, Replace text — is noted with the trigger that started that run, and the trigger skips the versions its own flow saved. Anything a person, another flow or another trigger does to the document fires as usual — so two flows can still hand a document to each other through a folder.

What the trigger remembers

To tell a new document from a changed one, and a rename from an edit, the trigger remembers the Word documents of the watched folder from the moment you activate, and every one it sees afterwards: up to 1,000 per trigger. In a folder with more, renaming a document it couldn't remember may arrive as New document. A document moved out of the folder is forgotten, so moving it back in is New document again.

Now and then Microsoft asks to start over: its record of the account's changes since HostWebhook last asked has expired. Rather than going through the whole OneDrive, HostWebhook then compares the folder with what it remembers: a document changed in the meantime arrives as Document changed and one added as New document, and the trigger's activity says it happened. Beyond the first 1,000 documents, changes made in that gap can be missed.

  • Documents shared with you don't fire it: Microsoft doesn't notify about them.
  • The watched folder deleted? The trigger stays active but matches nothing until you pick another folder.

What the trigger sends downstream

The same document the action node returns, with what happened and the watched folder in front — so {{payload.id}} is the Document and {{payload.parentId}} a Folder for any Word operation next:

{
  "event": "created",
  "service": "word",
  "watchedFolderId": "D4648F06C91D9D3D!123",
  "watchedFolder": "Contracts",
  "watchedFolderPath": "/Contracts",
  "id": "D4648F06C91D9D3D!54927",
  "name": "Contract ACME.docx",
  "title": "Contract ACME",
  "kind": "file",
  "size": 18234,
  "mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
  "extension": "docx",
  "path": "/Contracts/Contract ACME.docx",
  "parentId": "D4648F06C91D9D3D!123",
  "parentPath": "/Contracts",
  "driveId": "d4648f06c91d9d3d",
  "webUrl": "https://onedrive.live.com/edit?id=…",
  "childCount": null,
  "createdAt": "2026-10-01T15:12:44Z",
  "lastModifiedAt": "2026-10-01T15:14:02Z",
  "createdBy": { "name": "Ana García", "email": null, "app": null },
  "lastModifiedBy": { "name": "Ana García", "email": null, "app": null },
  "contentHash": "…",
  "eTag": "…",
  "cTag": "…",
  "text": "Service agreement\n\nBetween ACME Inc. and …",
  "textTruncated": false,
  "_file": { "id": "…", "originalName": "Contract ACME.docx", "mimeType": "…", "size": 18234, "downloadUrl": "https://…" }
}
  • event is created (New document) or updated (Document changed).
  • text and textTruncated only with Include the text; _file only with Attach the file.

“When someone drops a contract in /Contracts, read it, have an AI Node summarize it and post the summary to Slack”: Word trigger → Read document with {{payload.id}} (or Include the text on the trigger) → AI Node → Slack.

Trying it out

The trigger's Test push reads the latest Word documents of the folder, applies your filters, and shows them exactly as a delivery will arrive — with the text, if you asked for it, but without attaching the file (_fileSkipped says so) and without running the flow. To see a real one, activate the trigger and save a document in that folder.


Good to know

Personal and work accounts

 PersonalWork or school
Every operation, the trigger and the toolkitYesYes
“Only people in your company” linksNoYes
Expiry on linksWith a Microsoft 365 subscriptionYes — and the organization may set its own limit
A document locked because it is open in WordRareCommon: open in Word for the desktop, or checked out
TriggerMicrosoft notifiesMicrosoft notifies — or checks every 5 minutes if the organization blocks it
Approving HostWebhookYouYou, unless the organization asks for an administrator

An organization link on a personal account fails before anything is shared, with “organization” links exist only on work accounts; an organization that doesn't allow links for anyone answers Your organization does not allow links for anyone — choose organization instead.

Sizes and counts

WhatUp to
Read, fill, append to or replace in a documentDocuments up to 25 MB (100 MB once unzipped)
Download document, Also as a file, and the trigger's Attach the file16 MB — or your plan's per-file limit, if lower
Save as PDFA PDF of up to 50 MB
Read document50,000 characters by default, 200,000 at most
Content of Create document and Append text1,000,000 characters
Fill template — Fields500 fields
List documents and Find documents25 by default, 100 at most
List documents — items looked at in the folder1,000
Trigger — Include the text20,000 characters, of documents up to 25 MB
Trigger — Wait until editing stops60 seconds by default, 900 at most; never more than 30 minutes in all
Trigger — documents remembered per trigger1,000
Trigger — subfolders watched, with Also documents in its subfolders200
AI toolkit — characters per call sent to the model20,000 by default, 1,000 to 200,000

What it doesn't do

  • Delete, move, copy or upload files — that is the OneDrive node. Word stays with what is done to documents.
  • Read a .docx that arrives as a file — an email attachment, a webhook upload. Save it to OneDrive first with the OneDrive node's Upload file, then Read document with its {{payload.id}}.
  • Old .doc files are only looked up, downloaded, converted to PDF and shared — not read or changed.
  • Images aren't added by Create document or Append text, nor read by Read document. Comments and tracked changes aren't created.
  • Loops and conditions in templates — an invoice with one line per item is a list in one marker, which comes out one line per item.
  • Links with a password, and embed links, aren't offered.

When it fails

  • Not this kind of document — an operation given a file it doesn't work on says which files it takes, before calling Microsoft; a folder given as the Document says it is a folder.
  • Could not be opened as a .docx — password-protected, encrypted with a sensitivity label, damaged, or an old .doc renamed.
  • A name that's taken with fail says which one is already in the folder. A file name with \ / : * ? " < > |, or one OneDrive reserves, is refused with the reason; #, % and & are fine.
  • Changed while it was being edited or locked — see While someone is editing.
  • Reconnect — the account revoked HostWebhook or the sign-in expired: reconnect the credential in Settings → Credentials. A credential of another Microsoft service is refused with This is not a Word credential.
  • Busy or throttled. Microsoft limits how fast one account can be called. When it answers that it is busy, the node waits the time it asks for (up to ten seconds) and tries once more before giving up with Microsoft's message.