Integrations
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
- A page is created or its properties change in the database you bound.
- Bannerify reads the page and maps its properties onto your template layers.
- Bannerify renders the template and stores the result at
https://images.bannerify.co/files/.... - 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
- In Bannerify, open Integrations.
- Click Connect Notion.
- 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
- Click New automation.
- Pick the Notion database.
- Pick the Template and the output Format (PNG or PDF).
- Choose when it runs: when a page is created, when a page is updated, or both.
- Map a Notion property to each template layer. Text layers take any property; image layers take a Files property.
- Pick the property to write the render URL into.
- 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.