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

# Notion Database source

> Turn any Notion database into automated charts. AI suggests label, value, and group-by columns so non-analytical data becomes shippable analytics.

## Overview

Use a Notion database as a Chartcastr data source. After you connect your Notion workspace, pick any database that's shared with Chartcastr and we'll suggest 2–4 meaningful charts based on its columns and sample values — no formulas, no copy-paste, no spreadsheet wrangling.

Notion databases are flexible but **not analytical** — they don't have a built-in chart layer. Chartcastr fills that gap: it reads your rows, maps your columns to chart axes, aggregates, and delivers the result to Slack or email on whatever schedule you pick.

## Setup

<Steps>
  <Step title="Connect Notion">
    In Chartcastr, go to **New Source → Notion Database**. If Notion isn't connected yet, click **Connect Notion** and complete the OAuth flow. Pick the databases you want Chartcastr to read in Notion's permission screen.

    <Info>
      The same Notion connection is used for both database charts and page-content context. Connecting once enables both.
    </Info>
  </Step>

  <Step title="Pick a database">
    Search or browse for the database you want to chart. Click any database to load its schema and sample rows.
  </Step>

  <Step title="Choose an AI-suggested chart">
    Chartcastr's AI analyzes your columns and sample rows and proposes 2–4 meaningful charts (e.g. "Revenue by Month", "Tasks by Status"). Pick the one you want — or click **Configure manually instead** to start from scratch.
  </Step>

  <Step title="Customize (optional)">
    Adjust the column mapping if you want:

    * **Label** — the X-axis column. Auto-suggests date, title, or select columns.
    * **Values** — Y-axis numeric columns. Auto-suggests number, formula, rollup, and checkbox columns.
    * **Break down by** — optional pivot. Each unique value in the column becomes its own series. Capped at the top 5 values by total; remaining values collapse into an **Other** bucket.
    * **Chart type** — line, bar, area, or pie.
    * **Aggregation** — sum, average, count, min, or max.

    The live preview refreshes as you tweak.
  </Step>

  <Step title="Create a connection">
    Save the chart, then route it to a Slack channel or email on a schedule.
  </Step>
</Steps>

## Supported column types

| Notion type                                | Used as        | Notes                                                  |
| ------------------------------------------ | -------------- | ------------------------------------------------------ |
| Title, Rich text                           | Label          | Concatenated plain text                                |
| Number                                     | Value          | Direct                                                 |
| Date, Created time, Last edited time       | Label          | ISO date is trimmed to `YYYY-MM-DD` for clean grouping |
| Select, Status, Multi-select               | Group by       | Multi-select joined with commas when used as a label   |
| Formula                                    | Value or label | Detected from result sub-type (number / string / date) |
| Rollup                                     | Value          | Numeric rollups summed; string rollups joined          |
| Checkbox                                   | Value          | True → 1, False → 0                                    |
| Unique ID                                  | Value          | Numeric part                                           |
| Relation, People, Files, URL, Email, Phone | Not chartable  | Skipped                                                |

## Group-by behavior

When you pick a **Break down by** column, Chartcastr pivots the data: each unique value in the column becomes its own series. To keep charts readable, only the **top 5 values by total are shown** — the remaining values are aggregated into a single **Other** bucket. This prevents a column with hundreds of unique values from producing an unreadable chart.

## How often does it sync?

The database is queried fresh at every pulse delivery. If your database has up to 1000 rows, every row is included. Above 1000 rows, only the first 1000 are charted — let us know if you need a higher cap or filters.

## Limits & gotchas

* **Schema drift**: If you rename or delete a column referenced by a saved chart, the source is marked **degraded** at the next delivery with a clear error message. Re-open the source in settings to remap.
* **Notion permissions**: Chartcastr can only see databases that are **shared with the Chartcastr integration** in Notion. New databases need to be shared explicitly. See [Notion's docs on managing connections](https://www.notion.so/help/add-and-manage-connections-with-the-api).
* **Rate limits**: Notion's API is limited to \~3 requests per second; Chartcastr retries with backoff if it hits the limit.

## Next Steps

<CardGroup cols={2}>
  <Card title="Slack destination" icon="slack" href="/integrations/destinations/slack">
    Deliver Notion charts to your Slack channels with AI summaries in the thread.
  </Card>

  <Card title="Email destination" icon="envelope" href="/integrations/destinations/email">
    Schedule Notion-derived reports to any inbox or distribution list.
  </Card>
</CardGroup>
