Leo LogoHelloLeo
IntegrationsTemplatesPricingCommunity
Book a demoSign InGet Started
Leo LogoHelloLeo

The AI developer that builds the apps your ERP doesn't have — internal tools, portals and dashboards, running in production on top of NetSuite, Odoo, Salesforce and more.

Applications

  • HelloLeo for NetSuite
  • HelloLeo for Odoo
  • HR & Employees
  • Inventory
  • Accounting & Procurement

Integrations

  • Shopify integration
  • HubSpot integration
  • WhatsApp Business integration
  • Salesforce integration
  • Stripe integration
  • Google Sheets integration
  • Outlook integration
  • QuickBooks integration
  • All integrations

Product

  • Pricing
  • Templates
  • vs AI coding tools

Company

  • Contact

Resources

  • Documentation
  • Help Center
  • Community

Legal

  • Trust Center
  • Security
  • Status
  • Privacy Policy
  • Terms of Service
  • DPA
Notion logo
Integration

Connect Notion to your ERP

Notion is a new tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your team.

Productivity
Browse all integrations

What Leo can do with Notion

25 actions Leo can use in the apps and agents it builds for you: 11 that read Notion data, 14 that create or update it.

reads data writes data deletes data

Read from Notion · 11

  • Search

    Search Notion for pages and databases (data sources) by title. Use this first to resolve a page or database name into an ID that the other Notion tools require (e.g. Query Data Source, Retrieve Database Schema, Get Page, Create Page). Leave query blank to list everything the integration can access. Set filter to data_source to find databases or page to find pages — on the current Notion API a database is returned as a data_source object, and its id is the data source ID you pass to the database tools.

    Docs ↗
  • Get Page

    Retrieve a Notion page: both its property values and its body content rendered as Markdown. Use this to read what a page says or to inspect a database row's fields. Provide a page ID or a Notion page URL (use Search to resolve a page name into an ID).

    Docs ↗
  • Retrieve Database Schema

    Get the column (property) schema of a Notion database (data source): each property's name, type, and — for select/multi_select/status columns — its allowed option values. Call this before Query Data Source, Create Page, or Update Page on a database so you use exact property names and valid option values. Provide the data source ID (use Search with filter: data_source to resolve a database name into its ID).

    Docs ↗
  • Query Data Source

    Filter and sort the pages (rows) inside a Notion database (data source) by their property values. Discover exact property names and option values with Retrieve Database Schema first, then build a filter against them. A filter is a JSON object: a single condition { "property": "Status", "select": { "equals": "Escaped" } }, or a compound { "and": [ ... ] } / { "or": [ ... ] }. The condition key matches the property type — e.g. select, status, multi_select, number ({ "greater_than": 5 }), checkbox ({ "equals": true }), rich_text/title ({ "contains": "..." }), date. Omit filter to return all rows. Provide the data source ID (use Search with filter: data_source to resolve a database name).

    Docs ↗
  • Get Current User

    Retrieve the Notion identity tied to the current OAuth token, returning the full users.retrieve payload for me (person or bot). Includes the user ID, name, avatar URL, type (person vs bot), and workspace ownership metadata—useful for confirming which workspace is connected, adapting downstream queries, or giving an LLM the context it needs about who is operating inside Notion.

    Docs ↗
  • List File Uploads

    Use this action to list file uploads.

    Docs ↗
  • Retrieve User

    Returns a user using the ID specified.

    Docs ↗
  • Retrieve Page Property Item

    Get a Property Item object for a selected page and property.

    Docs ↗
  • Retrieve Data Source Content

    Get all content of a data source.

    Docs ↗
  • Retrieve Page Content

    Get page content as block objects or markdown. Blocks can be text, lists, media, a page, among others.

    Docs ↗
  • List All Users

    Returns all users in the workspace.

    Docs ↗

Write to Notion · 14

  • Update Page

    Update a Notion page's property values, and/or archive (delete) it. Properties you don't include are left unchanged. Provide the page ID or URL (use Search or Query Data Source to find it). Set properties to a flat JSON object of column-name → value, e.g. { "Status": "Contained" }; call Retrieve Database Schema first to learn the exact column names and valid select options. To add body content instead of changing properties, use Append Block to Parent.

    Docs ↗
  • Update Data Source

    Update a Notion database (data source): rename it, change its description, or add/rename/retype its columns. Provide the data source ID (use Search with filter: data_source to resolve a database name, or Retrieve Database Schema to inspect existing columns). properties is a JSON object of changes: to add a column, use a new name → type (e.g. { "Location": "rich_text" }); to rename/retype an existing column, key it by its current name/ID. Each value is a property schema object or a shorthand type name.

    Docs ↗
  • Create Page

    Create a new Notion page. The parent can be either another page (creates a subpage) or a database/data source (creates a row in that database). Provide the parent's ID or URL — use Search to resolve a name into an ID. When the parent is a database, set properties to a flat JSON object of column-name → value (e.g. { "Status": "Active", "ThreatLevel": 9 }); call Retrieve Database Schema first to learn the exact column names and valid select options. content is the page body as Markdown (headings, bullet lists, paragraphs, etc.).

    Docs ↗
  • Create Database

    Create a new Notion database (data source) as a subpage of a parent page, defining its column schema. Provide the parent page ID or URL (use Search to resolve a page name into an ID). properties is a JSON object of column-name → column type. Each value is a property schema object, or shorthand for simple types: { "Name": "title", "Quantity": "number", "Category": { "select": { "options": [ { "name": "A" }, { "name": "B" } ] } } }. Exactly one column must be the title type.

    Docs ↗
  • Create Comment

    Add a comment to a Notion page, or reply to an existing discussion thread. Provide either a page ID/URL (use Search to resolve a page name) or a discussion ID — not both.

    Docs ↗
  • Append Block to Parent

    Append Markdown content to the bottom of a Notion page (or block). The content is parsed from Markdown into Notion blocks — use it to add paragraphs, headings, bullet/numbered lists, to-dos, quotes, code, etc. Provide the page ID or URL (use Search to resolve a page name into an ID). To change a database row's property values instead, use Update Page.

    Docs ↗
  • Update Child Block

    Update a single existing child block (paragraph, heading, to-do, code, etc.) by its block ID. Use this only to mutate an existing block in place. Do NOT use to update a page's properties (database row fields) — use Update Page instead. Do NOT use to add new content to a page — use Append Block instead. Do NOT use to update a database's schema — use Update Database instead.

    Docs ↗
  • Send File Upload

    Send a file upload.

    Docs ↗
  • Retrieve File Upload

    Use this action to retrieve a file upload.

    Docs ↗
  • Copy Page From Template

    Copy an EXISTING page (template) into a new page with a new title. Use this ONLY when the user is reusing the structure of an existing page as a template (e.g. "copy this offer letter template for a new candidate"). Do NOT use to create a new page with original content — for that, use Create Page. The source page must already exist in Notion and is identified by its page ID.

    Docs ↗
  • Delete Block

    Sets a Block object, including page blocks, to archived: true using the ID specified.

    Docs ↗
  • Create Page from Data Source

    Create a page from a data source.

    Docs ↗
  • Create File Upload

    Create a file upload.

    Docs ↗
  • Complete File Upload

    Use this action to finalize a mode=multi_part file upload after all of the parts have been sent successfully.

    Docs ↗

Pair Notion with your ERP

Leo connects Notion to the ERP your business already runs on: the records it reads in Notion land in your ERP, and what changes in the ERP flows back.

Odoo logo
Notion + Odoo
See Odoo →
NetSuite logo
Notion + NetSuite
See NetSuite →

How it works

  1. 01
    Connect Notion

    Authorize Notion once, in a couple of clicks. Leo only gets the permissions you grant.

  2. 02
    Describe what you need

    In plain language: the dashboard, portal or agent you want across Notion and your ERP. No code, no mapping spreadsheets.

  3. 03
    Run it

    Leo builds it, you review, it goes live. Agents run on a schedule or on events, under the guardrails you set.

Notion integration: questions

What can Leo do in Notion?
Leo has 25 Notion actions available: 11 read data and 14 create or update it. Any of them can be combined with your ERP data in an app or an agent.
Which ERPs does the Notion integration work with?
Odoo and NetSuite today, through connectors we build and maintain ourselves. Notion connects through our connector network, so the same app or agent can use both sides.
Is my data safe?
You authorize Notion yourself and choose the permissions. Leo acts within them, every action is logged, and you can revoke the connection at any time.

More productivity integrations

  • Google Sheets logoGoogle Sheets
  • Google Calendar logoGoogle Calendar
  • Airtable logoAirtable
  • Trello logoTrello
  • Jira logoJira
  • Asana logoAsana
  • Calendly logoCalendly
  • Microsoft Excel logoMicrosoft Excel