Resources · n8n integration

Microsoft Excel 365 n8n integrationAutomate Microsoft Excel 365 with n8n.

A workbook can stay current without anyone opening Excel. The Microsoft Excel 365 n8n integration puts 17 operations behind 3 resources, workbooks, sheets and tables, so a workflow reads rows, appends them or wipes a range. No Excel trigger exists, so the run starts on a Schedule.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the Microsoft Excel 365 n8n integration actually do?

The node speaks to the Microsoft Excel API on your behalf. It opens a workbook stored in a Microsoft account, then reads, writes or restructures what sits inside it. 17 operations hang off 3 resources, Workbook, Sheet and Table, and each one maps to a gesture somebody would otherwise do by hand: appending a row, clearing a range, looking up a value in a column, adding a sheet for the new month.

First shape, a collector feeds a workbook. An HTTP Request node pulls a page, an HTML node turns the markup into fields, and worksheet.append writes the result under the existing headers. The same run can hand the numbers to a mail step, the way a Gmail node ships a daily digest to the people who never open the file themselves.

Second shape, a workbook feeds a send. worksheet.readRows returns the rows, a model drafts copy from them, and a Microsoft Outlook node delivers it. Teams who keep a subscriber list in Excel rather than in a database get their send without a single copy and paste, and the sheet stays the place where anybody can correct a line.

Third shape, a workbook mirrors another system. A file lands in Microsoft OneDrive, a Code node parses it, and worksheet.upsert matches on a column to rewrite only the rows that moved, which is how a stock or portfolio sheet stays true without a full reimport. When the same data already lives in a real database, weigh what the sheet adds against what Postgres handles on its own, and remember that the workflow shape exists on the Google Sheets side too.

Where the node stops, HTTP Request takes over. It calls any Microsoft Excel API endpoint while reusing the same credential, the connection saved once in n8n and reused by every workflow, through predefined authentication, which covers everything outside the 17 operations. Two limits deserve a minute before building. A range has to be spelled out, A1:B5 is read and a generic A:B is not, and a list operation stops at the first page until Return All is switched on.

The last thing to plan is the start. Excel 365 has no trigger node in n8n, so the workflow begins elsewhere, on a Schedule Trigger at a fixed interval or on an n8n Webhook that another service calls. If the open question is n8n itself rather than Excel, the n8n review goes through the platform, and n8n training covers building these workflows end to end.

Connect

How do you connect Microsoft Excel 365 to n8n?

  1. 01

    Choose the credential type

    The Excel node accepts two credentials. Microsoft Excel OAuth2 API covers this node alone. The generic Microsoft OAuth2 API serves several Microsoft nodes at once, as long as it carries the scopes, the permissions an app requests, that each of them needs. Both start from a Microsoft Azure account and a user account with access to the service.

  2. 02

    Register an application

    Self hosted, setup starts in Azure. In the Microsoft Application Registration Portal, select Register an application and set Supported account types to any organizational directory plus personal accounts. Copy the OAuth Callback URL into Redirect URI, pick the Web platform, paste the Application (client) ID into Client ID.

  3. 03

    Generate a client secret

    Back on the application page, open Certificates & secrets, add one under Client secrets with a description, then copy what appears in the Value column. Paste it into n8n as Client Secret, then start the account connection from the credential. Microsoft asks to sign in and to allow the app, and the credential is saved once that consent goes through.

Actions

17 operations, one note each

The Microsoft Excel 365 node exposes 17 operations across 3 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

Resources × operations matrix
ResourceGet ManyUpdateCreateAdd SheetAppendClearConvert to RangeDeleteDeleteDeleteGet ColumnsGet RowsLookupGet RowsAppend or Update
Table
Workbook
Sheet

Table

7 operations
01

Append rows to table

table.append

What you see in n8n

Notes & use cases

Rows land at the bottom of an existing table object, and the table keeps its own column definitions.

Key parameters

  • Workbook, Sheet and Table: three pickers, each filtered by the choice above it.
  • Data: the raw values as an array of string arrays in JSON, one inner array per row.
  • Data Mode: autoMap when the incoming item carries the column names, define to set each column by hand, raw to send the JSON untouched.
  • Index: left empty, the row goes last; a position slots it in and pushes the rows below down, first row index 0.
Use cases
a table of signed quotes that gains a line every time a deal closes.
02

Convert to range

table.convertToRange

What you see in n8n

Notes & use cases

The table object goes away while the cells stay where they are, which turns a structured table back into ordinary cells.

Key parameters

  • Workbook and Sheet: the file and the tab holding the table.
  • Table: the table to unwrap, picked from the list or given as an ID through an expression.
Use cases
a monthly report that is archived at the end of the period, when the recipients only need the figures and the table banding gets in the way of their own filters.
03

Create a table

table.addTable

What you see in n8n

Notes & use cases

A plain range becomes a table, which is what the other table operations need before they can do anything.

Key parameters

  • Workbook and Sheet: where the new table gets created.
  • Select Range: auto converts the whole used range of the sheet, manual hands the choice to the next field.
  • Range: the cells to convert, in A1 style such as A1:B2.
  • Has Headers: off, Excel generates headers itself and pushes the data down by one row.
Use cases
a first import that arrives as loose cells and has to become a table before any lookup runs on it.
04

Delete a table

table.deleteTable

What you see in n8n

Notes & use cases

One call removes the table from the sheet. Convert to range is the other way out when the values have to stay.

Key parameters

  • Workbook, Sheet, Table: the same three step path as every table operation, down to the named table.
Use cases
a scratch table built by a workflow for one run, dropped at the end so the next execution recreates it from a clean sheet instead of appending to yesterday.
05

Get columns

table.getColumns

What you see in n8n

Notes & use cases

The structure comes back rather than the content: the list of columns the table declares.

Key parameters

  • Workbook, Sheet, Table: the table to inspect.
  • Return All: on, every column comes back; off, Limit caps the count.
  • Fields: a comma separated list to trim the response down to what the next node reads.
Use cases
a guard at the top of a workflow that checks the expected headers exist before anything writes into the table.
06

Get rows

table.getRows

What you see in n8n

Notes & use cases

Each row of the table arrives as its own item, keyed by the header names, ready for a loop or a filter.

Key parameters

  • Workbook, Sheet, Table: the source table.
  • Return All: leave it off and the node stops at Limit, which is the usual cause of an export that looks truncated.
  • Column Names or IDs: the subset of columns to bring back.
  • RAW Data: on, the response is not parsed into keys, and Data Property names the field it lands in.
Use cases
a nightly pass over a table of invoices to send a reminder for every unpaid line.
07

Lookup a column

table.lookup

What you see in n8n

Notes & use cases

Instead of pulling the table and filtering afterwards, this one searches a single column and returns the rows that match.

Key parameters

  • Lookup Column: the column name to search in, Email for instance.
  • Lookup Value: what to find there, often {{ $json.email }} coming from the node before.
  • Return All Matches: off by default, so only the first hit comes back; switch it on when duplicates matter.
Use cases
a form submission that has to find the existing customer line before deciding to create or to update.

Workbook

3 operations
08

Add a sheet to a workbook

workbook.addWorksheet

What you see in n8n

Notes & use cases

A new tab appears in the workbook, empty and ready to be written into by a later node.

Key parameters

  • Workbook: the file receiving the sheet, from the list or through an expression.
  • Name: optional but worth setting, since Excel names the sheet itself when the field stays empty; the name has to be unique in the workbook.
Use cases
a monthly workbook where the first run of each month opens a tab named after the period, then the rest of the workflow appends into it.
09

Delete workbook

workbook.deleteWorkbook

What you see in n8n

Notes & use cases

The whole file goes, not a tab and not a range, so this one belongs behind a condition rather than in the main path.

Key parameters

  • Workbook: the file to delete, chosen from the list or resolved by ID through an expression.
Use cases
a housekeeping workflow that clears the temporary workbooks an export job created, once the results have been loaded somewhere durable.
10

Get workbooks

workbook.getAll

What you see in n8n

Notes & use cases

No picker to fill here: the operation lists the workbooks the credential can see, with their identifiers.

Key parameters

  • Return All: on for the full inventory, off to stop at Limit.
  • Fields: a comma separated list, useful when only the name and the ID matter downstream.
Use cases
a first run that resolves the workbook ID by name, so the workflows built afterwards point at an identifier instead of a file somebody may rename.

Sheet

7 operations
11

Append data to sheet

worksheet.append

What you see in n8n

Notes & use cases

Values go straight under the used range of a sheet, with no table object involved anywhere.

Key parameters

  • Workbook and Sheet: the file and the tab that receives the rows.
  • Data: an array of string arrays in JSON, one inner array per row to write.
  • Data Mode: autoMap maps input properties onto matching column names, define exposes Values to Send to build each column, raw passes the JSON along as it is.
Use cases
a scraping run that drops the day's results at the bottom of a log sheet, one line per item found.
12

Append or update a sheet

worksheet.upsert

What you see in n8n

Notes & use cases

This one reads before it writes: an existing row gets updated, a missing one gets added, in a single node.

Key parameters

  • Column to match on and Value of Column to Match On: the pair that identifies the row; the matching column is never modified.
  • Select a Range and Range: a specific A1 style range whose first row holds the column names, or blank to use the whole used range.
  • Update All Matches: on, every duplicate is rewritten, not only the first one.
Use cases
a holdings sheet refreshed from a file dropped in OneDrive, where prices change and lines rarely do.
13

Clear sheet

worksheet.clear

What you see in n8n

Notes & use cases

The sheet stays in place while what it holds goes away, entirely or over a chosen range.

Key parameters

  • Apply To: Contents wipes the data, Formats wipes the font sizes and colors, All takes both.
  • Select a Range and Range: an A1 style range to limit the sweep; left blank, the whole worksheet is cleared.
Use cases
a dashboard tab emptied right before the fresh figures are written, so last week's rows never survive under the new ones.
14

Delete sheet

worksheet.deleteWorksheet

What you see in n8n

Notes & use cases

Here the tab itself disappears from the workbook, which is the difference with Clear sheet.

Key parameters

  • Workbook: the file to work in.
  • Sheet: the tab to remove, picked from the list or given as an ID through an expression.
Use cases
a rolling workbook that keeps the last periods only, where each run drops the tab that fell out of the window once its numbers have been archived elsewhere.
15

Get sheets

worksheet.getAll

What you see in n8n

Notes & use cases

A workbook rarely holds a single tab, and this operation returns the list of sheets it contains.

Key parameters

  • Workbook: the file to open.
  • Return All: on, every sheet comes back; off, Limit decides how many.
  • Fields: a comma separated list to keep the response small.
Use cases
a loop that walks every monthly tab of a workbook and reads the same range in each one, without the tab names being hard coded in the workflow.
16

Get rows from sheet

worksheet.readRows

What you see in n8n

Notes & use cases

Reading works on a sheet that was never turned into a table, which is the case of most files people send around.

Key parameters

  • Range: A1 style and specific, A1:B5 is fine and A:B is not; blank returns the entire sheet.
  • Header Row: the index of the row holding the column names, counted inside the range, first row index being 0.
  • First Data Row: the index where the real rows start, which saves a sheet with a title and a blank line above the table.
Use cases
an export whose headers sit on the third line because of a logo block at the top.
17

Update sheet

worksheet.update

What you see in n8n

Notes & use cases

Existing rows get overwritten with new values, either across a range or on the rows that match a column.

Key parameters

  • Data: an array of string arrays that has to match the range, one inner array per row.
  • Column to match on and Value of Column to Match On: how the node finds the right row when the update is targeted.
  • Data Mode: raw rewrites the whole selected range with the new values, autoMap and define work column by column.
  • Update All Matches: on to rewrite every matching row.
Use cases
a status column flipped to closed on the line that carries the order number.
Need help

Need help automating Microsoft Excel 365 with n8n?

A person reads every message.

FAQ

Questions people ask next

01Is the Microsoft Excel 365 n8n integration free?
Yes on the n8n side. The Excel node ships with n8n, so there is nothing to install and nothing extra to pay for it, and the same node runs on n8n Cloud and on a self hosted instance under the Community Edition and its Sustainable Use license. What a Microsoft plan costs is a separate question this page does not cover. The credential is created once in the Credentials menu and reused by every workflow that touches a workbook, so the second Excel automation and the tenth cost nothing more than the time spent building them.
02What credentials or permissions does the Excel node need?
OAuth2, in one of two shapes. The node specific Microsoft Excel OAuth2 API credential covers this node on its own. The generic Microsoft OAuth2 API credential can be reused across several Microsoft nodes, provided it carries the scopes each of those nodes needs. Both start from a Microsoft Azure account and at least one user account with access to the service. On a self hosted instance the credential is built by registering an application with the Microsoft Identity Platform, generating a client secret, then pasting the Application (client) ID and that secret into n8n before starting the account connection.
03What are the limits of the Excel node in n8n?
Three are worth planning around. A range has to be written out in full, A1:B5 is accepted and a generic A:B is not, while leaving the field blank falls back to the used range or to the entire sheet depending on the operation. A list operation returns a first page only until Return All is switched on, and Limit caps what comes back when it stays off. Anything outside the 17 operations goes through the HTTP Request node, which reaches any Microsoft Excel API endpoint and reuses the same credential through predefined authentication, so nothing has to be authenticated twice.
04Can n8n react to a change in an Excel workbook in real time?
No, there is no Excel trigger node in n8n, so nothing sits and watches the file. A workflow about a workbook starts somewhere else. A Schedule Trigger fires at a fixed interval and a Get rows from sheet step compares what changed since the last pass. An n8n Webhook, meaning a URL that a third party service calls when something happens on its side, suits the case where another system already knows about the event. The trigger of another tool in the chain works the same way, a form or a payment tool announcing the row that has to be written.
05n8n or Make for Microsoft Excel 365?
It depends on four things and none of them is the feature list. Make is hosted by Make, with no self hosting option, and it bills by operation, so a workflow that walks a sheet row by row shows up on the invoice. n8n runs on Cloud or on a server you control, which changes the data question when the workbook holds client records that should not travel. The visual logic differs too, modules chained one after another on one side, items branched and merged on the other. Both end up calling the same Microsoft Excel API, so the choice is about hosting, control and habit.
Hack'celeration Lab

Get our weekly integration tips.

No spam. Unsubscribe anytime.