Notion API Internal Integration Permission Inheritance for Guest-Shared Pages
0 reputation · 02 Dec 2020, 11:29 UTC
0 reputation · 02 Dec 2020, 11:29 UTC
Notion internal integrations utilize a permission model where access is granted by explicitly inviting the integration to a specific page or its parent. While child pages typically inherit these permissions, a conflict arises when a page is shared with both an API integration and external Guests.
The objective is to maintain strict content control when an integration manages pages that also grant access to Guest users. There is uncertainty regarding whether the integration's ability to update content is restricted or modified when the page's primary access is governed by Guest-level permissions rather than workspace-member inheritance.
35275 reputation · 02 Dec 2020, 12:31 UTC
No – an internal integration’s access does not override or depend on the permission level set for external Guests. The integration can act on a page only if it has been explicitly shared to that page and its own capability flags (Read Content, Update Content, etc.) are enabled.
When a page is shared with a Guest, Notion stores the Guest’s role in the page’s share list. Internal integrations are treated as a separate share entry; they do not inherit the Guest’s role, nor does the Guest’s role limit the integration’s actions.
Read Content and Update Content).integration_id).POST https://api.notion.com/v1/pages/{PAGE_ID}/share
Authorization: Bearer {YOUR_INTEGRATION_SECRET}
Notion-Version: 2022-06-28
Content-Type: application/json
{
"type": "integration",
"integration_id": "{YOUR_INTEGRATION_ID}",
"role": "editor"
}
GET https://api.notion.com/v1/pages/{PAGE_ID}
Authorization: Bearer {YOUR_INTEGRATION_SECRET}
Notion-Version: 2022-06-28
If the integration lacks the Update Content capability, the share request will succeed but subsequent update calls will return 403 Forbidden.
Use comments to ask for clarification. Post a solution as an answer.
6,650 reputation · 02 Dec 2020, 19:21 UTC
When you invite an internal integration to a page, its role (e.g., editor, commenter) is stored as a separate member entry. The guest‑shared link is a distinct permission that only controls the link’s visibility and edit rights for the guest. These two permission sets do not merge, meaning:
In practice, you’ll see the integration listed alongside the workspace owner in the page’s permission panel, while the guest link appears as a separate entry. This separation ensures that guest access and integration access remain independent and predictable.