Our Notion integration is a read-only import and sync connector in the Admin Panel for the customer's Trust Center. The goal is to gate-keep content for security and compliance reviews through a public website. Content is either public, contact-assigned with our without NDA or entirely internal. The access level is modifiable by the workspace's content managers.
A workspace admin explicitly connects Notion via OAuth (handled through Nango), then users can browse/search their authorized Notion pages and databases, select content, and import it into our document library. For selected pages, we read page metadata and block content and convert it to markdown; if a page contains a file block (e.g., PDF/file), we download that file and attach it to the document instead.
We store the imported document plus source metadata (Notion page ID, URL, title, timestamps, parent/icon) in our tenant-scoped CMS so it can be published and managed in our app. We run incremental metadata sync every 4 hours (and allow manual sync) to keep already-linked documents up to date.
We do not create, edit, or delete anything in Notion; we only read content the user has authorized and can disconnect at any time, which stops syncing and removes the connection record from our side.
How to use
1. A workspace admin starts Notion connection in our Integrations page. 2. We create a secure OAuth session via Nango and redirect the admin to Notion consent. 3. After consent, Nango sends us the connection details, and we save only the connection reference in our tenant-scoped integrations table. 4. An authorized user opens “Import from Notion” in our document flow. 5. We call Notion (through Nango) to list/search pages and databases the connected account can access. 6. The user selects a page to import. 7. We fetch page metadata (ID, title, URL, last edited time). 8. If the page contains a supported file block (for example PDF/file), we securely download that file and store it in our document storage. 9. If no file block is present, we read page blocks and convert the content to markdown for our document editor. 10. We create/update a document in our app, linking it to the Notion source (source = notion, source_id = Notion page ID) and storing sync metadata (URL, timestamps, parent/icon info). 11. We run incremental background sync every 4 hours (and support manual sync) to refresh metadata/title/timestamps for already linked Notion-sourced documents. 12. Users can disconnect Notion at any time; we delete the active connection record on our side and stop future syncs.
- We use Notion only to read authorized content for import/sync into our Trust Center documents. - We do not create, edit, or delete Notion content. - Access is tenant-scoped and tied to explicit user authorization.
All third-party trademarks (including logos and icons) referenced herein are the property of their respective owners. Unless specifically designated as Made by Notion, integrations are not supported or maintained by Notion. The third-party products or services that integrations connect to are Non-Notion Applications (as defined in Notion’s Master subscription agreement or Personal Terms of Use, as applicable). By enabling any integration or otherwise using the Notion integration gallery, you agree to Notion’s Integration Gallery Terms.