Notion
Give apps and agents authorized access to Notion pages, databases, and workspace knowledge.
Install the skill
$ npx skills add vercel/vercel-plugin --skill vercel-connectConnect to Notion
$ vercel connect create notion --name acme-notionUse its data in agents(opens in new tab) and apps(opens in new tab)
import { getToken } from '@vercel/connect';const userId = 'user_123';const token = await getToken('notion/acme-notion', {subject: { type: 'user', id: userId },});
Use Notion in apps and agents
Notion combines documents, wikis, and databases in a shared workspace. Its API and MCP server let software search, read, and update authorized content.
Read the Notion developer docs(opens in new tab)Why use Vercel Connect with Notion?
Credentials on demand
Request Notion credentials only when your application or agent needs them instead of copying secrets into application code.
Access for the right subject
Support both user-authorized and app-scoped Notion access from the same connection layer.
Managed authorization lifecycle
Centralize Notion authorization and token exchange rather than rebuilding the provider flow in every application.
Vercel-native controls
Bind connections to the projects and environments that need them while Vercel OIDC authenticates each runtime request.
What you can build with Notion
Ground agents in workspace knowledge
Search and read authorized pages before answering questions or taking action.
Maintain structured records
Create and update database entries from application and agent workflows.
Publish workflow output
Write meeting notes, research, summaries, and status updates back to Notion.
Use Notion with your stack
Follow a complete setup for the Connect SDK or a supported agent framework.
Add Notion to an existing Vercel application with the Connect SDK.
Install the Connect SDK
npm install @vercel/connectCreate the Notion connector
Run these commands from the project that will use the connection.
vercel linkvercel connect create notion --name acme-notionvercel env pullRequest Notion credentials
app/api/route.tsimport { getToken } from '@vercel/connect';const userId = 'user_123';const token = await getToken('notion/acme-notion', {subject: { type: 'user', id: userId },});