Reference · Tools
Microsoft OneNote
Access and retrieve OneNote pages via Microsoft Graph API.
The Microsoft OneNote node retrieves note pages through Microsoft Graph, either a specific page by ID or a set of pages filtered with OData options such as $filter, $search, $orderby and $top. A typical build is pulling meeting notes into a summarisation step so the actions land in a task tracker.
- Node type
- Action
- Parameters
- 7
- Outputs
- Output, Error
- Credentials
- OneNote API
Microsoft OneNote
Get or list OneNote pages via Microsoft Graph API.
Overview
The OneNote tool communicates with the Microsoft Graph API (https://graph.microsoft.com/v1.0/me/onenote) to access OneNote pages. It supports retrieving a single page by ID or listing multiple pages with OData query options ($filter, $orderby, $select, $expand, $search, $top). Authentication uses a Bearer token obtained from an Azure AD OAuth2 flow. Pagination follows the @odata.nextLink pattern when returnAll is enabled.
Category: Productivity
Tool Name: onenote
Version: 1
Appearance: Icon: lucide-BookOpen | Color: #7719AA
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires OneNote API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Page | page |
Operations
| Operation | Value | Description |
|---|---|---|
| Get | get | Get a specific page |
| Get Many | getAll | Get multiple pages |
Parameters
Page: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Page ID | string | Yes | — | The ID of the OneNote page to retrieve. Supports expressions like {{ $json.pageId }}. |
Page: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Additional Options | collection | No | {} | OData query options applied to the request. Add only the options you need. |
| — Expand | string | No | — | OData $expand query option to include related entities (e.g. “parentNotebook,parentSection”). |
| — Filter | string | No | — | OData $filter query expression (e.g. “contains(title,‘Meeting’)”). |
| — Order By | string | No | — | OData $orderby expression (e.g. “lastModifiedDateTime desc”). |
| — Search | string | No | — | OData $search for full-text search across page content. |
| — Select | string | No | — | OData $select to return only specific fields (e.g. “id,title,createdDateTime”). |
| — Top | number | No | — | Override the $top page size for pagination requests. |
| Max Concurrency | number | No | 5 | Maximum number of items to process concurrently. |
Output Data
The OneNote page data returned by Microsoft Graph is merged into the item JSON at the top level, so page fields sit alongside the fields the item already carried, and binary data is forwarded unchanged.
- Get produces one output item per input item, carrying that single page.
- Get Many produces one output item per page found. When the query matches nothing, a single item is produced carrying
_noResults: trueso the branch is not silently empty.
Which page fields arrive depends on the query: by default Microsoft Graph returns the full page object, and a Select value narrows it to the fields you list (for example id, title, createdDateTime, lastModifiedDateTime, contentUrl). An Expand value adds the related entities you ask for, such as parentNotebook and parentSection.
Reference the result downstream by expression, e.g. {{ $json.title }}.
Usage Examples
- Get a specific OneNote page by ID
- List all OneNote pages
- Search OneNote pages with OData filter
- Get recent OneNote pages sorted by last modified date
Example Configuration
Filter and select specific fields:
{
"additionalOptions": {
"filter": "contains(title,'Meeting')",
"select": "id,title,createdDateTime",
"orderBy": "lastModifiedDateTime desc"
}
}
Full-text search with related entity expansion:
{
"additionalOptions": {
"search": "quarterly report",
"expand": "parentNotebook,parentSection",
"top": 20
}
}
Get a single page by ID:
{
"resource": "page",
"operation": "get",
"pageId": "1-abc123def456!101"
}
Get all pages (no limit):
{
"resource": "page",
"operation": "getAll",
"returnAll": true
}
Get a limited number of pages:
{
"resource": "page",
"operation": "getAll",
"returnAll": false,
"limit": 25
}
Get a single page with field selection:
{
"resource": "page",
"operation": "get",
"pageId": "1-abc123def456!101",
"additionalOptions": {
"select": "id,title,createdDateTime,lastModifiedDateTime"
}
}
Get many pages with OData filtering and ordering:
{
"resource": "page",
"operation": "getAll",
"returnAll": false,
"limit": 50,
"additionalOptions": {
"filter": "contains(title,'Project')",
"orderBy": "lastModifiedDateTime desc",
"select": "id,title,lastModifiedDateTime"
}
}
Full-text search across all pages:
{
"resource": "page",
"operation": "getAll",
"returnAll": true,
"additionalOptions": {
"search": "budget 2026",
"expand": "parentNotebook,parentSection",
"select": "id,title,contentUrl"
}
}
Retrieve a known page — use get when you already have a specific page ID:
{
"resource": "page",
"operation": "get",
"pageId": "1-abc123def456!101",
"maxConcurrency": 5
}
Paginated batch retrieval — use getAll with returnAll: false and a limit to control payload size:
{
"resource": "page",
"operation": "getAll",
"returnAll": false,
"limit": 10,
"additionalOptions": {
"orderBy": "createdDateTime desc",
"select": "id,title,createdDateTime"
}
}
Full content dump with expanded relationships — fetch every page along with its parent notebook and section metadata:
{
"resource": "page",
"operation": "getAll",
"returnAll": true,
"additionalOptions": {
"expand": "parentNotebook,parentSection",
"select": "id,title,contentUrl,createdDateTime,lastModifiedDateTime"
}
}
Search-driven retrieval with pagination override — use search for full-text content matching and top to control API-level page size:
{
"resource": "page",
"operation": "getAll",
"returnAll": false,
"limit": 100,
"additionalOptions": {
"search": "action items",
"top": 100,
"select": "id,title,lastModifiedDateTime"
}
}
Wrong — OData options placed at the top level, where they are ignored:
{
"resource": "page",
"operation": "getAll",
"returnAll": true,
"filter": "contains(title,'Meeting')",
"select": "id,title"
}
Correct — the same options nested inside additionalOptions:
{
"resource": "page",
"operation": "getAll",
"returnAll": true,
"additionalOptions": {
"filter": "contains(title,'Meeting')",
"select": "id,title"
}
}
Wrong — setting a limit while Return All is on:
{
"resource": "page",
"operation": "getAll",
"returnAll": true,
"limit": 10
}
Correct — Limit only applies when Return All is off:
{
"resource": "page",
"operation": "getAll",
"returnAll": false,
"limit": 10
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
The OneNote tool retrieves pages from Microsoft OneNote by communicating with the Microsoft Graph API using Bearer token authentication from an Azure AD OAuth2 flow. Use it when a workflow needs to read note content by fetching a specific page by ID or querying multiple pages with OData options such as $filter, $search, $orderby, or $top. It outputs retrieved page objects with metadata and content on the main output, supports automatic pagination via @odata.nextLink for full result sets, and routes failures to the error output.
Frequently asked questions
How do I query for several pages?
Use the OData options — $filter, $search, $orderby and $top — to select the pages you want rather than fetching by ID one at a time.
Does it page through large result sets?
Yes, pagination is automatic via @odata.nextLink, so a query returning many pages is followed through to completion.
Can it write to OneNote?
No — the node retrieves pages. It is a read path for pulling note content into a workflow.
Which credential does it need?
A OneNote API credential using Bearer token authentication from an Azure AD OAuth2 flow.
Build with the Microsoft OneNote node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need OneNote API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.