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

# Connect Notion

> Render a Bannerify template from a Notion database and write the result back to the page.

Use the Notion integration when the content lives in a Notion database and you want a Bannerify template rendered from it. Connect a workspace, bind a database to a template, and every new or updated page renders and receives the result URL.

## How it works

1. A page is created or its properties change in the database you bound.
2. Bannerify reads the page and maps its properties onto your template layers.
3. Bannerify renders the template and stores the result at `https://images.bannerify.co/files/...`.
4. The render URL is written back to the same page.

Each render counts toward your workspace usage, the same as an API call.

## Prerequisites

* A Bannerify project with a template that has named layers. Layer names are what you map Notion fields onto, so rename them in the editor first.
* A Notion workspace where you can install connections and share databases.
* A Notion property that Bannerify can write the result into: a **URL** or a **Text** property. Add one (for example `Rendered URL`) before you create the automation.

## Connect a workspace

1. In Bannerify, open **Integrations**.
2. Click **Connect Notion**.
3. On Notion's consent screen, pick the pages and databases you want Bannerify to reach, then return to Bannerify.

The connection belongs to the workspace, not to you, so everyone in the workspace can use it. To change the databases Bannerify can see, update the connection from Notion's **Settings → Connections**.

## Create an automation

1. Click **New automation**.
2. Pick the **Notion database**.
3. Pick the **Template** and the output **Format** (PNG or PDF).
4. Choose when it runs: when a page is created, when a page is updated, or both.
5. Map a Notion property to each template layer. Text layers take any property; image layers take a **Files** property.
6. Pick the property to write the render URL into.
7. Save.

Use **Test** on a saved automation to render one page immediately and check the mapping before you rely on it.

## Fields sent to the template

Every property arrives as a flat string, keyed by its name, plus these virtual fields:

| Field | Value |
| - | - |
| `page_id` | Notion's id for the page |
| `page_url` | Link to the page |
| `created_at` | Creation time |
| `updated_at` | Last edit time |
| `page_title` | The title property, as plain text |

Properties are flattened like this:

| Notion property | Value |
| - | - |
| Title, Text | The plain text |
| Select, Status | The option name |
| Multi-select, People | Names joined with `, ` |
| Files | The first file URL |
| Formula, Rollup | The computed value |
| Number | The number as a string |
| Date | `start/end` for a range, otherwise `start` |
| Checkbox | `true` or `false` |
| URL, Email, Phone | The raw value |

Empty properties arrive as empty strings, so a mapping never shifts when a field is blank.

## Limits

| Limit | Value |
| - | - |
| Renders per automation | 60 per minute |
| Databases per automation | One |
| Layers per automation | One property per layer |

Notion groups rapid edits into a single event, so a burst of changes produces one render.

## Troubleshooting

**A database is missing from the picker.** Share it with the Bannerify connection: open the database in Notion, click **•••** → **Connections** → add Bannerify.

**Nothing runs when I edit a page.** Check that the automation is enabled, that you ticked the trigger for that event, and that the property you changed is not the one Bannerify writes to.

**The render URL is missing from the page.** The write-back property must be a **URL** or a **Text** property. Check **Recent runs** on the Integrations page for the error.

**A run says "Reconnect needed".** Notion rejected the stored token. Click **Reconnect** and finish the consent screen again.

**The image is missing a photo.** Notion file URLs expire within an hour. Bannerify fetches them immediately, so re-saving the page re-runs the render.


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