Create Notion Feed

User Intent

"How do I sync Notion pages? Show me Notion feed configuration."

Operation

SDK Method: createFeed() with FeedTypes.Notion Auth: OAuth or integration token


Code Example (TypeScript)

import { Graphlit } from 'graphlit-client';
import {
  FeedTypes,
  NotionTypes,
  NotionDatabasesInput,
  NotionPagesInput,
} from 'graphlit-client/dist/generated/graphql-types';

const graphlit = new Graphlit();

const notionToken = process.env.NOTION_TOKEN!;

// Enumerate databases the integration can access
const databasesResponse = await graphlit.queryNotionDatabases({
  token: notionToken,
});

const databases = databasesResponse.notionDatabases?.results ?? [];

if (databases.length === 0) {
  throw new Error('No Notion databases available for the provided token');
}

const database = databases[0]!;
console.log(`Using Notion database: ${database.name} (${database.identifier})`);

// Optionally enumerate pages inside the database
const pagesResponse = await graphlit.queryNotionPages({ token: notionToken }, database.identifier!);
const pages = pagesResponse.notionPages?.results ?? [];
console.log(`First page in database: ${pages[0]?.name ?? 'N/A'}`);

const feed = await graphlit.createFeed({
  name: 'Company Notion',
  type: FeedTypes.Notion,
  notion: {
    type: NotionTypes.Database,
    identifiers: [database.identifier!],
    token: notionToken,
    isRecursive: true,
    readLimit: 200,
  },
  // Optional: add workflow for content processing
  // workflow: { id: workflow.createWorkflow.id }
});

Configuration

token: Notion integration token (stored securely) identifiers: Database or page IDs (enumerate via helpers) type: NotionTypes.Database or NotionTypes.Page isRecursive: Sync nested pages from selected databases readLimit: Max pages per sync


Integration Setup

  1. Notion → Settings & Members → Integrations → Develop your own integrations

  2. Create an internal integration and copy the secret to NOTION_TOKEN

  3. Share the integration with the databases or pages you want to sync

  4. Use queryNotionDatabases and queryNotionPages to list identifiers before creating the feed


Last updated