Reference · Tools

Microsoft OneNote

Access and retrieve OneNote pages via Microsoft Graph API.

Action Productivity v1

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

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires OneNote API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Pagepage

Operations

OperationValueDescription
GetgetGet a specific page
Get ManygetAllGet multiple pages

Parameters

Page: Get

ParameterTypeRequiredDefaultDescription
Page IDstringYesThe ID of the OneNote page to retrieve. Supports expressions like {{ $json.pageId }}.

Page: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

All Operations

ParameterTypeRequiredDefaultDescription
Additional OptionscollectionNo{}OData query options applied to the request. Add only the options you need.
— ExpandstringNoOData $expand query option to include related entities (e.g. “parentNotebook,parentSection”).
— FilterstringNoOData $filter query expression (e.g. “contains(title,‘Meeting’)”).
— Order BystringNoOData $orderby expression (e.g. “lastModifiedDateTime desc”).
— SearchstringNoOData $search for full-text search across page content.
— SelectstringNoOData $select to return only specific fields (e.g. “id,title,createdDateTime”).
— TopnumberNoOverride the $top page size for pagination requests.
Max ConcurrencynumberNo5Maximum 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: true so 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

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes 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 BusyBot

Last updated . Spotted something wrong? Tell us.