Skip to content

docs(source-notion): update setup for Notion connections, document record format and troubleshooting - #78154

Draft
devin-ai-integration[bot] wants to merge 1 commit into
masterfrom
docs/auto/source-notion
Draft

devin-ai-integration[bot] wants to merge 1 commit into
masterfrom
docs/auto/source-notion

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented May 18, 2026 •

Copy link
Copy Markdown
Contributor

Triggering Context

Run triggered by: Merged PR on master (autodoc workflow)

Relevant context: Commit ed0252ec from #88131, which replaced the connector's custom record transformations with declarative AddFields (v4.0.28, no change to record output).

Confidence impact: The trigger is a small, merged refactor with a clear scope, so Triggering Context scores 5. Most changes in this PR address gaps in the existing doc rather than the refactor itself.

Documentation Confidence Assessment

Overall Confidence: 3/5

Dimension Score Rationale
Code Comprehension of the Documented Surface 4/5 Manifest-only connector; record format, concurrency, error handling, and incremental behavior all traced in manifest.yaml, with unit tests for the transformations.
API Documentation Quality 4/5 Notion has thorough official docs with OpenAPI specs; externalDocumentationUrls only lists 2 entries.
Change Scope & Risk 3/5 About 105 lines changed: setup steps rewritten for Notion's new Developer portal UI, plus new record format and troubleshooting sections.
Existing Doc Maturity 3/5 Moderate doc (~120 lines of prose plus changelog) with basic setup and stream coverage.
Connector Sensitivity 2/5 Certified connector with high usage (ql 400, sl 200).
Triggering Context 5/5 Small, merged refactor PR.
Inference Ratio 4/5 Almost every claim maps to the manifest or Notion's docs; Notion UI labels come from Notion's docs, not from clicking through the UI.

Raw score: 0.15·4 + 0.15·4 + 0.25·3 + 0.10·3 + 0.15·2 + 0.10·5 + 0.10·4 = 3.45, floored to 3. No hard caps apply.

Adjustments based on code comprehension

  • Declarative surface area: up -- Streams, transformations (properties_to_name_value_list, bot_owner_to_info), concurrency_level, the num_workers spec, error handlers, and client_side_incremental_sync are all in manifest.yaml.
  • Test coverage of the documented claim: up -- unit_tests/test_record_transformations.py (added in refactor(source-notion): replace custom record transformations with declarative AddFields #88131) covers the properties and bot.owner.info reshaping.
  • Custom-component budget: down -- The Blocks stream still uses the custom BlocksRetriever; I relied on the existing doc and the manifest for the 30-level depth and excluded block types rather than re-tracing the retriever.

What I Verified vs. What I Inferred

  • Verified from code: num_workers (1–10, default 3) controls default_concurrency; Pages and Data Sources use POST /search with an object filter; Comments are partitioned by page ID; incremental sync is client-side on last_edited_time; 404 responses containing "Make sure the relevant pages and databases are shared with your integration." are ignored; the Users stream fails with "Notion integration lacks read user information for the Users stream..." on restricted_resource; properties is converted to a [{name, value}] array; bot owner details move from bot.owner.<type> to bot.owner.info.
  • Verified from API docs: Notion now calls integrations "connections" and manages them in the Developer portal (app.notion.com/developers/connections), with Configuration (API token, capabilities, OAuth client ID/secret) and Content access tabs; page sharing via ••• > Connections > + Add connection; per-connection rate limits of 180 requests/min on most plans and 600/min on Business and Enterprise, plus a shared per-workspace limit; List comments returns un-resolved comments only; List all users excludes guests; personal access tokens can't list workspace users; the authorization guide anchor #public-connection-auth-flow-set-up.
  • Verified from git history: Merge dates and PR numbers for the corrected changelog rows.
  • Inferred: That the Airbyte Cloud OAuth popup still shows Select pages / Allow access (unchanged from the existing doc). That a Notion personal access token pasted into the Access Token field works for streams other than Users.

Areas of Concern

  • The setup steps now follow Notion's current Developer portal docs. I didn't sign in to Notion to confirm the exact button labels.
  • I added explicit heading IDs ({#step-1-create-an-integration-in-notion}, {#step-2-set-permissions-and-acquire-authorization-credentials}) so the links in the connector spec's field descriptions resolve. Previously those anchors didn't match any heading.

What

Updates the Notion source docs so the setup steps match Notion's current UI and the doc covers configuration, record format, and troubleshooting details that were missing.

How

Corrections

  • Rewrote Steps 1 and 2 for Notion's Developer portal ("connections", Configuration and Content access tabs) instead of the retired My integrations page and Secrets/Distribution tabs.
  • Updated rate limits: 3 requests/second average on most plans, 10 on Business and Enterprise, plus a workspace-wide limit.
  • Fixed the Notion authorization guide link anchor and the Blocks/Pages API reference links.
  • Changelog: 4.0.8-rc.5 now links to #78467 (was fix(destination-azure-blob-storage): fallback to per-blob delete when batch delete fails with 403 #78500) with date 2026-05-28; 4.0.8-rc.3 date 2026-05-22; 3.3.12 date 2026-02-09; 4.0.18 now links to #83183 instead of a CDK issue.

Additions

  • Setup step and performance guidance for Number of concurrent workers.
  • Note that incremental sync is client-side.
  • Stream details: Pages and Data Sources only include content shared with the connection; Comments are un-resolved only; Users excludes guests.
  • New Record format section describing the properties array and bot.owner.info reshaping.
  • New Troubleshooting section: Users stream permission error, personal access tokens, and missing pages or blocks.

Review guide

  1. docs/integrations/sources/notion.md – Setup guide (Steps 1–3), the new "Record format" section, "Performance considerations", and "Troubleshooting".
  2. Changelog rows for 4.0.18, 4.0.8-rc.5, 4.0.8-rc.3, and 3.3.12.

User Impact

Readers get setup steps that match Notion's current UI, and an explanation of how properties and bot owner fields look in their destination.

Can this PR be safely reverted and rolled back?

  • YES 💚
  • NO ❌

Note: I am an AI assistant (Devin) and have proposed these documentation updates based on a review of the connector source code and third-party API documentation, prompted by recent changes to this connector. Reviewers may merge, modify, or close this PR as they see fit.

Phase 2 note: markdownlint-cli2 reports only MD029 (ordered list numbering around the env blocks in Step 3, same pattern as before) and MD060 in the existing changelog table. Vale isn't installed in this environment.

Docusaurus build: pnpm build succeeded with no Notion-related errors or broken-link/anchor warnings. Note: docusaurus/package.json declares node >=20, but mermaid@12.2.0 requires Node >=22.12.0, so the build needed Node 22.

Link to Devin session: https://app.devin.ai/sessions/1bc66047676543a89a41a8d56ea740f9
Open in Devin Desktop: https://app.devin.ai/desktop/session/1bc66047676543a89a41a8d56ea740f9?variant=devin

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@github-actions

Copy link
Copy Markdown
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

💡 Show Tips and Tricks

PR Slash Commands

Airbyte Maintainers (that's you!) can execute the following slash commands on your PR:

  • 🛠️ Quick Fixes
    • /format-fix - Fixes most formatting issues.
    • /bump-version - Bumps connector versions, scraping changelog description from the PR title.
      • Bump types: patch (default), minor, major, major_rc, rc, promote.
      • The rc type is a smart default: applies minor_rc if stable, or bumps the RC number if already RC.
      • The promote type strips the RC suffix to finalize a release.
      • Example: /bump-version type=rc or /bump-version type=minor
    • /bump-progressive-rollout-version - Alias for /bump-version type=rc. Bumps with an RC suffix and enables progressive rollout.
  • ❇️ AI Testing and Review (internal link: AI-SDLC Docs):
    • /ai-prove-fix - Runs prerelease readiness checks, including testing against customer connections.
    • /ai-canary-prerelease - Rolls out prerelease to 5-10 connections for canary testing.
    • /ai-review - AI-powered PR review for connector safety and quality gates.
  • 📝 AI Documentation:
    • /ai-docs-review - AI-powered documentation review for PRs with connector changes.
    • /ai-create-docs-pr - Creates a documentation PR for connector changes, stacked on the current PR.
  • 🚀 Connector Releases:
    • /publish-connectors-prerelease - Publishes pre-release connector builds (tagged as {version}-preview.{git-sha}) for all modified connectors in the PR.
  • ☕️ JVM connectors:
    • /update-connector-cdk-version connector=<CONNECTOR_NAME> - Updates the specified connector to the latest CDK version.
      Example: /update-connector-cdk-version connector=destination-bigquery
  • 🐍 Python connectors:
    • /poe connector source-example lock - Run the Poe lock task on the source-example connector, committing the results back to the branch.
    • /poe source example lock - Alias for /poe connector source-example lock.
    • /poe source example use-cdk-branch my/branch - Pin the source-example CDK reference to the branch name specified.
    • /poe source example use-cdk-latest - Update the source-example CDK dependency to the latest available version.
  • ⚙️ Admin commands:
    • /force-merge reason="<REASON>" - Force merges the PR using admin privileges, bypassing CI checks. Requires a reason.
      Example: /force-merge reason="CI is flaky, tests pass locally"
📚 Show Repo Guidance

Helpful Resources

📝 Edit this welcome message.

@devin-ai-integration devin-ai-integration Bot added area/documentation Improvements or additions to documentation team/documentation labels May 18, 2026
@github-actions

github-actions Bot commented May 18, 2026 •

Copy link
Copy Markdown
Contributor

Deploy preview for airbyte-docs ready!

Project:airbyte-docs
Status: ✅  Deploy successful!
Preview URL:https://airbyte-docs-gjh4lhjc9-airbyte-growth.vercel.app
Latest Commit:c9b8036

Deployed with vercel-action


## Supported sync modes

The Notion source connector supports the following [sync modes](https://docs.airbyte.com/cloud/core-concepts#connection-sync-modes):

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acknowledged. This was a real markdownlint warning caused by editing a list item after an intervening block. I moved the Start Date sentence up into the uninterrupted setup list and pushed a follow-up commit so markdownlint no longer flags this line.


Devin session

@devin-ai-integration
devin-ai-integration Bot force-pushed the docs/auto/source-notion branch 2 times, most recently from 6bb11a4 to 1763987 Compare May 26, 2026 20:15
@devin-ai-integration devin-ai-integration Bot changed the title docs(source-notion): add programmatic config reference docs(source-notion): update programmatic config reference May 26, 2026
@devin-ai-integration
devin-ai-integration Bot force-pushed the docs/auto/source-notion branch from 66f0c42 to e77f149 Compare June 1, 2026 21:06
@devin-ai-integration devin-ai-integration Bot changed the title docs(source-notion): update programmatic config reference docs(source-notion): add troubleshooting section and document concurrency setting Jun 1, 2026
@devin-ai-integration
devin-ai-integration Bot force-pushed the docs/auto/source-notion branch from e77f149 to ceb8aa5 Compare June 1, 2026 22:49
@devin-ai-integration devin-ai-integration Bot changed the title docs(source-notion): add troubleshooting section and document concurrency setting docs(source-notion): fix changelog errors, add troubleshooting section, document concurrency setting Jun 1, 2026
…ent record format, concurrency, and troubleshooting; fix changelog

Co-Authored-By: bot_apk <apk@cognition.ai>
@devin-ai-integration
devin-ai-integration Bot force-pushed the docs/auto/source-notion branch from ceb8aa5 to c9b8036 Compare October 13, 2026 15:25

6. (Optional) You may optionally provide a **Start Date** using the provided datepicker, or by programmatically entering a UTC date and time in the format: `YYYY-MM-DDTHH:mm:ss.SSSZ`. During incremental syncs, only data generated after this date is replicated. If left blank, the start date defaults to two years before the current date.
7. Click **Set up source** and wait for the tests to complete.
6. (Optional) Enter a **Start Date** in UTC, in the format `YYYY-MM-DDTHH:mm:ss.SSSZ`. The connector doesn't sync records last edited before this date. If you leave it blank, the start date defaults to two years before the current date.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[markdownlint] reported by reviewdog 🐶
error MD029/ol-prefix Ordered list item prefix [Expected: 1; Actual: 6; Style: 1/2/3]

6. (Optional) You may optionally provide a **Start Date** using the provided datepicker, or by programmatically entering a UTC date and time in the format: `YYYY-MM-DDTHH:mm:ss.SSSZ`. During incremental syncs, only data generated after this date is replicated. If left blank, the start date defaults to two years before the current date.
7. Click **Set up source** and wait for the tests to complete.
6. (Optional) Enter a **Start Date** in UTC, in the format `YYYY-MM-DDTHH:mm:ss.SSSZ`. The connector doesn't sync records last edited before this date. If you leave it blank, the start date defaults to two years before the current date.
7. (Optional) Set **Number of concurrent workers** to control how many requests the connector makes in parallel. The default is 3 and the maximum is 10. For guidance, see [Performance considerations](#performance-considerations).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[markdownlint] reported by reviewdog 🐶
error MD029/ol-prefix Ordered list item prefix [Expected: 2; Actual: 7; Style: 1/2/3]

7. Click **Set up source** and wait for the tests to complete.
6. (Optional) Enter a **Start Date** in UTC, in the format `YYYY-MM-DDTHH:mm:ss.SSSZ`. The connector doesn't sync records last edited before this date. If you leave it blank, the start date defaults to two years before the current date.
7. (Optional) Set **Number of concurrent workers** to control how many requests the connector makes in parallel. The default is 3 and the maximum is 10. For guidance, see [Performance considerations](#performance-considerations).
8. Click **Set up source** and wait for the tests to complete.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[markdownlint] reported by reviewdog 🐶
error MD029/ol-prefix Ordered list item prefix [Expected: 3; Actual: 8; Style: 1/2/3]

@devin-ai-integration devin-ai-integration Bot changed the title docs(source-notion): fix changelog errors, add troubleshooting section, document concurrency setting docs(source-notion): update setup for Notion connections, document record format and troubleshooting Oct 13, 2026
Comment on lines +84 to +86
6. (Optional) Enter a **Start Date** in UTC, in the format `YYYY-MM-DDTHH:mm:ss.SSSZ`. The connector doesn't sync records last edited before this date. If you leave it blank, the start date defaults to two years before the current date.
7. (Optional) Set **Number of concurrent workers** to control how many requests the connector makes in parallel. The default is 3 and the maximum is 10. For guidance, see [Performance considerations](#performance-considerations).
8. Click **Set up source** and wait for the tests to complete.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[markdownlint-fix] reported by reviewdog 🐶

Suggested change
6. (Optional) Enter a **Start Date** in UTC, in the format `YYYY-MM-DDTHH:mm:ss.SSSZ`. The connector doesn't sync records last edited before this date. If you leave it blank, the start date defaults to two years before the current date.
7. (Optional) Set **Number of concurrent workers** to control how many requests the connector makes in parallel. The default is 3 and the maximum is 10. For guidance, see [Performance considerations](#performance-considerations).
8. Click **Set up source** and wait for the tests to complete.
1. (Optional) Enter a **Start Date** in UTC, in the format `YYYY-MM-DDTHH:mm:ss.SSSZ`. The connector doesn't sync records last edited before this date. If you leave it blank, the start date defaults to two years before the current date.
2. (Optional) Set **Number of concurrent workers** to control how many requests the connector makes in parallel. The default is 3 and the maximum is 10. For guidance, see [Performance considerations](#performance-considerations).
3. Click **Set up source** and wait for the tests to complete.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/documentation Improvements or additions to documentation team/documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants