Notion lets PageOptimized send approved content tasks into a database your team uses for production.
PageOptimized verifies the database by calling Notion's database API, then creates pages with task properties when you sync.
Official Notion references:
- Getting started: https://developers.notion.com/guides/get-started/quick-start
- Internal connections: https://developers.notion.com/guides/get-started/internal-connections
- Retrieve a database: https://developers.notion.com/reference/retrieve-a-database
Before you start
- Confirm you are a Notion workspace member who can create integrations.
- Create or choose the database where PageOptimized content tasks should land.
- Open PageOptimized in another tab.
- Go to the project.
- Open Publishing > Connections.
- Find the Notion card.
Step 1: create the Notion integration token
- Open https://www.notion.so/my-integrations.
- Click New integration.
- Enter a name, such as PageOptimized.
- Choose the workspace that owns the content database.
- Select the Notion API capability when Notion asks for capabilities.
- Give the integration permission to read content.
- Give the integration permission to insert content.
- Give the integration permission to update content if your workflow will update synced tasks later.
- Save or create the integration.
- Copy the internal integration secret. It usually starts with secret_.
- Store it somewhere secure until you paste it into PageOptimized.
Step 2: prepare the Notion database
PageOptimized currently writes these database properties:
- Name: title property.
- Keyword: text property.
- Status: select property.
- Owner: text property.
- PublishDate: date property.
To prepare the database:
- Open the Notion database as a full page.
- Confirm there is a title property named Name.
- Add a text property named Keyword if it does not exist.
- Add a select property named Status if it does not exist.
- Add common status options, such as planned, draft, review, approved, and published.
- Add a text property named Owner if it does not exist.
- Add a date property named PublishDate if it does not exist.
- Keep capitalization exactly as shown above.
Step 3: share the database with the integration
- Open the Notion database page.
- Click Share or the three-dot menu, depending on your Notion layout.
- Find Connections.
- Search for the integration you created.
- Select the integration.
- Confirm access.
- If Notion asks whether to grant page access, approve it.
Step 4: copy the database ID
- Open the database as a full page, not an inline view inside another page.
- Copy the browser URL.
- Find the long database ID in the URL. It is the long string after the workspace or page name and before any question mark.
- You can paste the ID with or without hyphens.
- Do not copy the view ID after ?v= as the database ID.
Step 5: save in PageOptimized
- Return to PageOptimized.
- Paste the integration secret into Integration token.
- Paste the database ID into Database ID.
- Leave Require approval on if Xavier should ask before syncing.
- Click Save Notion.
- Wait for the live credential check.
- Click Create test page.
- Open Notion and confirm the test page appears in the database.
Troubleshooting
- If Notion says object_not_found, the database has not been shared with the integration or the database ID is wrong.
- If the test page fails because of a property name, check Name, Keyword, Status, Owner, and PublishDate exactly.
- If the token is rejected, create a fresh internal integration secret and paste it again.
- If you shared a linked database, share the original source database instead.
- Check the Audit Logs tab in PageOptimized for the exact Notion API response.