Notion Source (EN)

Makes Notion databases available as a dynamic content source in the YOOtheme Pro page builder · Version 1.2.3 · Stand 07.09.2026

Notion Source at a glance

Notion Source makes your Notion databases available as a dynamic content source in the YOOtheme Pro page builder. You store your Notion integration token once; after that every database you have shared with the integration becomes a source in the builder: you pick a database, filter and sort it if needed, and use the entries and their properties directly in your layouts.

Notion Source is a system plugin for Joomla 6 and produces no output of its own in the frontend — the content appears where you place it in the YOOtheme builder.

The screenshots in this manual were taken on a German Joomla installation. The extension follows the language of your installation, so the labels appear in English on an English backend.

A YOOtheme page showing data from a Notion database
A page built with the YOOtheme builder whose content (title, phone number, description) comes from a Notion database.

What you use Notion Source for

How it works

When you save the plugin, Notion Source reads the property schema of all accessible databases once and stores it in a local cache. The builder offers you the matching fields from it immediately, without querying the Notion API on every page view. The API responses are additionally cached for a configurable period.

Privacy is built in

The Notion token lives solely in the plugin configuration on your server and is never output to the frontend. The only service contacted is the Notion API; no data goes anywhere else.

What Notion Source consists of

You install a package that deploys and enables a single system plugin:

How to read on

If you are starting out, this order works best:

  1. Requirements and installation
  2. Download key and updates
  3. Setting up the Notion integration
  4. Entering the token and options
  5. Using the Notion source in the YOOtheme builder

Applies to version 1.2.3.

Deutsche Fassung

Requirements and installation

Notion Source is installed as one package that deploys and enables the system plugin. This page lists the requirements and describes what is active after the installation.

Requirements

Joomla6.0 or newer
PHP8.3 or newer
TemplateYOOtheme Pro 4 or 5 (active)
Notionan internal integration token that has been given access to the databases you want

Notion Source extends the YOOtheme Pro builder. Without an active YOOtheme Pro template the plugin can be installed, but no Notion source appears in the builder.

Installation

  1. Download the file plg_system_notionsource-<version>.zip.
  2. In the backend, open System → Install → Extensions and drag the ZIP file into the Upload Package File area.
  3. After the upload, Notion Source is installed and the plugin is enabled.

Notion Source ships as a single system plugin. Earlier versions came as the package pkg_notionsource; if you still have that package installed, remove it under System → Manage Extensions before installing the plugin.

The panel after installing Notion Source, with version, status and the cards Getting started, Enable updates and Help
This panel greets you after the installation. It names the installed version and leads to the three things now due: storing the Notion token, entering the download key for updates, and the manual. After an update, the changelog takes the place of "Getting started".

What is active after the installation

So that the Notion source is available in the builder right away, the installation enables the system plugin automatically. You do not have to switch it on by hand. Before any content appears, however, the Notion token still has to be entered — see the chapters Setting up the Notion integration and Entering the token and options.

A first check

Open System → Plugins and search for Notion. The plugin System - Notion Source should have the status Enabled.

What happens when you uninstall

Removing the plugin deletes it and its settings. The local schema cache under administrator/cache/ is cleared when the token is removed or via Joomla's cache management; it contains no credentials anyway, only database and field names.

Applies to version 1.2.3.

Deutsche Fassung

Download key and updates

Notion Source receives updates through the official Joomla update mechanism. To allow your website to fetch them, enter your personal download key once.

Entering the download key

  1. Create your download key in your customer account on graup-it.de (menu item Download IDs). One key applies per website and covers all extensions obtained through it.
  2. In the backend, open System → Update → Update Sites.
  3. Open the entry Notion Source Update Site and enter the key into the field Download Key.
  4. Save.

Make sure to paste the key without leading or trailing spaces. A space copied along with it makes the update fail with an error message ("URL rejected" or "Package download failed").

Installing updates

  1. Open System → Update → Extensions.
  2. If a new version is available, Notion Source appears in the list. Select it and click Update.
  3. Joomla downloads the package using your download key, verifies the checksum and installs the new version. Your Notion token and your settings are preserved.

If Joomla finds no update although a new version exists, click Check for Updates first to refresh the cache.

The manual route

You can also install any version by hand: download the ZIP and install it via System → Install → Extensions, just like the first installation. An update through the package overwrites the existing installation and keeps your settings.

Applies to version 1.2.3.

Deutsche Fassung

Setting up the Notion integration

For Notion Source to read your databases it needs an integration token from Notion and the databases in question shared with that integration. You set up both in Notion — once, and in a few minutes.

1. Create an internal integration

  1. Open notion.so/my-integrations and click New integration.
  2. Give it a name (for example "Website") and select the workspace it belongs to.
  3. An internal integration with read permissions (Read content) is enough. Write permissions are not needed.
  4. Save and copy the Internal Integration Secret shown. It starts with ntn_ (with secret_ for older integrations).

This token is a key to the shared content of your workspace. Treat it like a password and do not pass it on.

2. Share databases with the integration

A fresh integration sees nothing — you have to share every database (or a parent page) with it explicitly:

  1. Open the database in Notion as a full page.
  2. Click ••• at the top right → ConnectionsConnect to and choose your integration.
  3. Repeat this for every database that is to appear on the website. If you share a parent page, the databases below it count as shared automatically.

Whatever you do not share with the integration does not show up in Notion Source. If too few databases — or none at all — are offered in the builder later, this sharing step is almost always what is missing.

Back to Joomla

Now enter the copied token in the plugin — see Entering the token and options.

Applies to version 1.2.3.

Deutsche Fassung

Entering the token and options

Notion Source has two settings. You find them under System → Plugins → System - Notion Source.

The plugin settings with the token field and the cache lifetime
The settings: Notion integration token and cache lifetime. The token is masked as a password field.

Notion integration token

Paste the token you created in Notion here (it starts with ntn_ or secret_). Without a valid token the builder offers no Notion source.

Cache lifetime (seconds)

For this long the answers of the Notion API are cached before they are fetched again. The default is 300 (five minutes). A higher value relieves the API and speeds up the pages; a lower value shows changes in Notion sooner. The value 0 switches the cache off — not recommended on production sites.

What happens when you save

On saving, Notion Source reads the property schema of all shared databases and stores it locally. If that succeeds, a green message names the databases found, for example:

Notion Source: schema loaded – Team (6 fields), References (9 fields)

The builder then offers the fields from this schema — without querying the API on every page view.

After changes in Notion — when you add or rename a property (column) or share a new database — save the plugin once more. Only then is the schema updated and the new fields appear in the builder.

If no token is entered

If you remove the token and save, the schema cache is deleted and the Notion source disappears from the builder. If the token format is invalid, the plugin says so on saving and does not build the schema.

Applies to version 1.2.3.

Deutsche Fassung

Using the Notion source in the YOOtheme builder

As soon as the token is entered, the Notion source is available in the YOOtheme builder. This page shows how to fill an element with data from a Notion database.

The YOOtheme builder with the page open
The YOOtheme builder. Via Dynamic Content you bind an element to the Notion source.

Choosing the source

  1. Open the page in the YOOtheme builder and insert an element that can display lists (a grid, for example).
  2. Enable Dynamic Content in its settings.
  3. Choose Notion Database Items as the source.
  4. In the field Database, select the Notion database you want from the list.

Filtering, sorting, limiting

The source comes with several options for narrowing down the entries:

Filter: property nameName of the Notion property to filter on (for example Status). Empty = no filter.
Filter: valueThe value being looked for (for example Published).
Filter: property typeType of the property: select, status, text, checkbox (true/false) or number. It must match the field in Notion.
Sorting: property nameProperty to sort by. Empty = no sorting.
Sort directionAscending or descending.
Number of entriesMaximum number of entries. 0 = load all.

Property names are expected exactly as they are spelled in Notion — including capitalisation and spaces. A typo means the filter does not take effect.

Assigning fields

Inside the dynamic element you assign the Notion fields to the individual parts (title, text, image, link …). Which fields exist and how they are grouped is described in the chapter Fields and properties.

Applies to version 1.2.3.

Deutsche Fassung

Fields and properties

Notion Source provides two kinds of fields: the properties (columns) of your databases and a few meta fields of the Notion page itself. In the builder they are grouped by topic and labelled with their type, for example "Status (select)".

Supported properties

TextTitle, text (rich text)
SelectionSelect, multi-select (tags), status
DateDate, created time, last edited time
NumberNumber, checkbox
MediaFiles (returns the URL of the first file)
ContactURL, email, phone
PersonPerson(s), created by, last edited by
RelationRelation, rollup
ComputedFormula, unique ID

Multi-value fields (multi-select, person, relation) are output as a comma-separated list, a checkbox as true/false.

Meta fields of the page

In addition to the properties there is the group Notion Meta:

Page IDthe Notion-internal ID of the entry
Page URLthe link to the Notion page (useful as a "read more")
Created / last editedthe timestamps of the page
Cover image URLthe cover image of the Notion page
Iconthe icon (emoji or image URL)

Date format

Every date field has the argument date format — a PHP date() pattern. Examples: d.m.Y gives "24.07.2026", d.m.Y H:i gives "24.07.2026 09:30". If a value cannot be read as a date, it is output unchanged.

Important: fields belong to the selected database

The builder shows the fields of all shared databases together. If you assign a field to an element that does not exist in the currently selected database, the value stays empty. So take care to use only fields that match the database chosen in the source element.

Properties of the same name in different databases (for example a "Title" field everywhere) share one entry in the field list — that is intended and returns the right value for every entry.

Applies to version 1.2.3.

Deutsche Fassung

Permissions and privacy

Notion Source is built so that your credentials stay protected and no data leaves your website unnecessarily.

The token stays on the server

Only Notion is contacted

The only external connection goes to the Notion API (api.notion.com). No other services, no statistics or tracking servers are contacted. The data fetched is cached locally (see Entering the token and options).

The cache holds no secrets

The schema stored locally (under administrator/cache/) contains only database and field names, no token. It is stored as a PHP file with access protection, so calling it directly in a browser reveals nothing.

Image and file URLs from Notion

Files and cover images from Notion are embedded via URLs hosted by Notion. For uploaded files these URLs are time-limited and may expire after a while. For images embedded permanently, better use an external URL in Notion or load the image into the Joomla media manager.

Who may change the settings

The plugin configuration — and with it the token — is accessible only to users with the corresponding backend permissions (usually administrators). Notion Source creates no frontend forms of its own and accepts no input from visitors.

Applies to version 1.2.3.

Deutsche Fassung

Common questions and troubleshooting

Answers to common questions and the quickest routes to fixing things.

No Notion source appears in the builder

The database selector is empty

A new Notion property is missing in the builder

The schema is read when the plugin is saved. After changes in Notion (new column, rename, newly shared database) save the plugin once more — the new fields are available afterwards.

A field stays empty

Changes in Notion appear with a delay

The API responses are cached for the configured cache lifetime (default 5 minutes). For faster updates lower the value; for an immediate test you can set it to 0 briefly (not recommended permanently on production sites).

The update is not found or fails

An image from Notion stops being displayed after a while

URLs hosted by Notion for uploaded files are time-limited. For permanent images use an external URL in Notion or the Joomla media manager.

Applies to version 1.2.3.

Deutsche Fassung

Changelog

This changelog lists every released version of Notion Source, the most recent first.

This page is generated automatically from the product's changelog file when a release is made. Changes made by hand are lost at the next synchronisation.

Version 1.2.3 – 16 August 2026

Fixed

Version 1.2.2 – 1 August 2026

Changed

Version 1.2.1 – 31 July 2026

Added

Changed

Fixed

Deutsche Fassung