> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ocoya.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Notion

> Connect Notion pages and databases, how a post becomes a Notion page, and using a Notion database to start a workflow.

A Notion channel is one **page** or one **database** in your Notion account. Post to a page and Ocoya creates a new sub-page inside it. Post to a database and Ocoya adds a new row. One Notion connection can give you as many channels as you shared with Ocoya.

Notion can also start a workflow: a new row in a database, or a row reaching a status such as *Ready*, can be posted to your other channels. See [Notion in workflows](#notion-in-workflows) below.

## Before you start

You need to be allowed to add connections in Notion. Most Notion accounts let any member do that. Some admins restrict which connections members can add, and Notion tells you so when you connect.

Decide which pages Ocoya should see. Notion asks you to pick them while you connect, and Ocoya can only ever reach those pages, the pages inside them, and the databases inside them.

## Connect Notion

<Steps>
  <Step title="Open Channels">
    Select **Channels** in the left sidebar, then **Connect channel**.
  </Step>

  <Step title="Choose Notion">
    Pick **Notion** from the **Add a connection** panel. It's the first one under Blogging, above DEV.to and WordPress.
  </Step>

  <Step title="Select pages in Notion">
    Notion shows what Ocoya will be able to do, then asks you to **Select pages**. Tick each page Ocoya may use, including any page that holds a database you want to post to or start workflows from.
  </Step>

  <Step title="Allow access">
    Approve the request. Notion sends you back to Ocoya.
  </Step>

  <Step title="Select the profiles to add">
    The **Select profiles** page lists everything you can post to: every database you shared, and each page you ticked. Choose the ones you want as channels for this brand.
  </Step>
</Steps>

Each one appears on your Channels page under its Notion name, with its icon if it has one.

<Note>
  The pages *inside* a page you shared aren't listed separately, so a page with fifty sub-pages doesn't bury the list. Databases are always listed, wherever they sit, because a content calendar usually lives inside another page.
</Note>

## Adding more pages later

Ocoya only sees what you shared. To add a page you didn't tick the first time, either:

* connect Notion again from **Channels** — Notion's screen lets you add pages to what you shared before, and your existing channels keep working — or
* open the page in Notion, select **•••** in the top right, then **Connections**, and add **Ocoya**. Then connect Notion again in Ocoya to choose it as a channel.

## How posts appear

The **first line** of your caption becomes the page title, up to 200 characters. Everything after it becomes the page itself. If the first line starts with `#` or is wrapped in `**`, those marks are left out of the title.

In a database, the title goes into the database's title column, whatever it is called — *Name*, *Title*, *Post*. Other columns are left empty for you to fill in, so a post lands as a new row ready to be tagged, assigned or given a status.

Ocoya turns your caption into Notion blocks rather than one long paragraph:

| You write | Notion shows |
| - | - |
| A line starting `#`, `##` or `###` | A heading of that size |
| A line starting `-`, `*` or `•` | A bulleted list item |
| A line starting `1.` | A numbered list item |
| A line starting `>` | A quote |
| A line of `---` | A divider |
| `**text**` | Bold text |
| A web address | A clickable link |
| An empty line | A new paragraph |

Pages are created by the **Ocoya** connection, so Notion shows it as the creator in the page's history.

## What you can post

| Post type | Supported |
| - | - |
| Text post | Yes, no image needed |
| Images | Yes, up to 10 |
| Video | Yes, up to 10 |
| GIF | Yes, up to 10 |
| Images, video and GIFs together | Yes, up to 10 in any mix |

Media goes below the text, in the order it has in the post editor. An image's alt text becomes its caption in Notion. A link you added to the post that isn't already in the caption is added at the end as a bookmark.

Media is linked from Ocoya's storage rather than uploaded into Notion, so it doesn't count towards your Notion upload limits.

## Notion's limits

| | Limit |
| - | - |
| Post text | 100,000 characters |
| Title | 200 characters, taken from the first line |
| Hashtags | No limit. Notion shows them as plain text |
| Images, video and GIFs | 10 per post, in any mix |

Databases that combine more than one data source can't be posted to yet. An ordinary database made in Notion has one, so this rarely comes up.

## Deleting a post

Deleting a published post in Ocoya moves the Notion page to Notion's **Trash**. It disappears from the page or database straight away and can be restored from Trash for 30 days, the same as deleting a page in Notion yourself.

## Notion in workflows

Notion works at both ends of a workflow.

**Post to Notion** is an action like every other network's. Choose the page or database channel, and leave the caption empty to use whatever the step before it wrote.

**New item in a Notion database** is a trigger. Choose a database channel, and the workflow runs once for each new row.

| Setting | What it does |
| - | - |
| **Database** | The database to watch. It has to be connected as a channel first |
| **Only when** | Optional. A column name and a value, such as *Status* and *Ready*. The workflow then runs when a row reaches that value, not when it's created |

How the trigger behaves:

* **A new row usually runs within a minute.** Notion tells Ocoya as soon as a row is added or changed.
* **Nothing before you switch the workflow on counts.** Without **Only when**, it runs for rows created after that. With it, it runs for rows that reach the value after that. Rows already in the database are left alone either way.
* **Each row runs once.** A row moved to *Ready*, back to *Draft* and to *Ready* again isn't posted twice.
* **Up to 10 rows run per check.** Add a hundred rows at once and they're worked through over the next few checks, oldest first.

Every column of the row is available to the steps after the trigger, written in lowercase with underscores: a column called *Publish date* becomes `{{trigger.publish_date}}`. You can also use `{{trigger.title}}`, `{{trigger.body}}` for the text of the page itself, and `{{trigger.url}}` for a link back to it.

Two values are filled in for you, so a **Post to Instagram** step straight after the trigger works with nothing set up:

* **The caption** comes from a column called *Caption*, *Text*, *Content*, *Copy*, *Post*, *Description* or *Body*, in that order. With none of those, it's the text of the page, and with no text, the title.
* **The media** is every file in a *Files & media* column, followed by the images inside the page.

## Disconnecting

Disconnecting a Notion channel in Ocoya stops Ocoya posting there. Pages it already created stay in Notion.

To remove Ocoya from Notion entirely, open **Settings** in Notion, then **Connections**, find **Ocoya** and disconnect it. Every Notion channel from that account then shows **Reconnect needed** the next time it posts.

## Common problems

**"Ocoya no longer has access to this Notion page."** The page was removed from what Ocoya can see in Notion. Add Ocoya back under the page's **•••** → **Connections**, or connect Notion again and select it.

**"Notion cannot find this page, or it is no longer shared with Ocoya."** The page was deleted, moved to Trash, or stopped being shared. Restore or share it again, or pick a different channel.

**"Notion no longer accepts this connection. Reconnect Notion."** Ocoya was removed in Notion's **Settings** → **Connections**. Reconnect — see [Reconnect a channel](/help/reconnect-a-channel).

**"The Notion channel on this trigger is a page, not a database."** The workflow's trigger is set to a page channel. Choose a database channel in the trigger's **Database** setting.

**"Notion is rate limiting requests."** Notion asked Ocoya to slow down. The post can be retried in a minute.

**"Notion authorization was declined."** You selected **Cancel** on Notion's screen. Connect again and choose **Allow access**.

**"The Notion authorization expired before it was used."** The connection took too long to finish. Connect again.

**A database I shared isn't on the Select profiles page.** Check it's inside a page you ticked, and that it isn't a linked view of a database somewhere else — share the original database instead.

## Related

<Columns cols={2}>
  <Card title="Character and media limits" icon="ruler" href="/help/channel-limits">
    Every network's limits in one table.
  </Card>

  <Card title="Why didn't my post publish?" icon="triangle-alert" href="/help/post-didnt-publish">
    Diagnosing a post a network refused.
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.