- High-Speed Interface
- Efficient search (without latency) and quick access to Notion items (pages, database and relations)
- Hide and Unhide pages from query
- Support for databases, select, multi select, status, relations, links and date properties
- Quick create database items with custom supported properties
- Optional icons for Notion items, with the flexibility to disable them
- Support for custom payload to search or Edit
- Open-source for transparency
- All data is cached and stored locally for optimal performance
- Prioritizing user privacy and security
@
To select database!
To select relation#
To select an option for a selection (select, multi select, status, check) property.[
To add a link*
or^
To insert a block$
Used by auto completeTab Key
to change mode to search filter when auto complete a database or relation$
Used by auto completeTab Key
to change mode to Edit when auto complete a database item- Date is automatically selected once it is recognized.
-
Plugin Installation:
-
Start by installing the plugin. In flow launcher query paste
pm install notion by Amin Salah
-
-
Plugin Activation:
-
Navigate to Settings:
- Within the settings, navigate to
Plugins > Notion
.
- Within the settings, navigate to
-
Integration Token Setup:
-
Paste your Internal Integration Token.
-
Create a new token if necessary.
Note:
-
-
Database Query:
- Trigger the plugin again after setting the Internal Integration Token.
- Wait while the plugin queries the databases.
-
Testing Databases:
-
Select Relation Database:
- Navigate to
Settings > Plugins > Notion
. - Choose your relation database and wait the success message.
- Navigate to
-
Finally, restart Flow Launcher.
-
After Flow Launcher opens, if the search cache is provided properly (require internet connection), you will see all shared pages with your token. The create mode is only allowed when there is no match with the query and shared pages.
In case of any error Relod Plugins data or Restart flow lunacher with good internet connection to build a cache.
Note:
To enhance the visual appeal and facilitate the display of SVG icons in Flow Launcher, I recommend installing the SVG Explorer Extension for SVG preview. You can find the extension here.
-
- c + no input
- c + word
- c + @
- c + !
- c + page details + #
- c + page details + * or ^
- c + page details + Humanized time
Trigger the plugin with an empty query to activate search mode. List of results would contain all shared pages with your integration Tip: Press Arrow Up to display recently added or edited pages.
Initiate a search for the specified word within page titles. Navigate through the pages using the following commands:
- Press
Enter
or useMouse Down
to open the page in your browser (default and configurable). - Press
Shift + Enter
or useLeft Arrow
to reveal the Context menu for pages.
Show shared databases with your integration. You can perform the following actions:
- Select a database to create a page within by pressing
Enter
or useMouse Down
- Open the database page in Notion by pressing
Ctrl + Enter
orCtrl + Mouse Down
- Quickly set the database as default database by pressing
Alt + Enter
orAlt + Mouse Down
Show selected relation database pages if it's selected in settings panel. You can perform the following actions:
- Select a page to link a created page to it by pressing
Enter
or useMouse Down
- Open the page in Notion by pressing
Ctrl + Enter
orCtrl + Mouse Down
If the database has more than one url or media files property, the result list would contain names of these properties to choose from. In the case where the database has only one url or media files property, the plugin would automatically choose it. Use character
[
to start typing a link you can close the square brackets to continue typing the page name or keep it opened, captured link should be appear under the page name.If the database has more than one multi-selection property, the result list would contain names of these properties to choose from. In the case where the database has only one multi-select property, the plugin would automatically choose it and display all available tags (non-clickable). You can choose options by using
# + optionName
:After assigning a block type keyword, it is not possible to select database, relations, tags, or date options.
What is the difference between
*
and^
?*
will show you supported block types for you to choose from before entering the desired block text.^
will skip the previous step and automatically choose the default block type, which isparagraph
.
Is the default block type configurable?
- Yes, it is. Hold the ctrl key before choosing the block type, and it will set the selected block type as default. However, it will revert to the paragraph if the query is cleared.
In case the selected block type requires more arguments, such as specifying the language for a code block, there is a next step where the result list will display Notion options to choose from.
Tip: To paste the clipboard content as it was copied, utilize
Alt + Enter
. This is recommended because thectrl + v
process may alter the content and remove multiple lines.Notion supports only a Limited number of characters for each block type. If the character limit is exceeded, you will receive a Bad Request error.
The plugin recognizes humanized time, eliminating the need to input it in a specific format.
Under construction
To escape any keyword simply add backslah before it \
Supported keywords:
@
!
#
[
- Custom Filter titles
- Dates by choosing cancel after they are recognized or backslah.
Unsupported Keywords:
*
^
$
Under construction
π Utilizing custom payloads allows you to:
- Query specific filters such as (All uncompleted tasks and overdue).
- Edit specific tasks based on payload from the context menu (Shift + Enter), for example,
change state to complete and set complete date to now
.
Note: The plugin comes with two payloads:
- Complete Payload needs to be configured to match your database property names.
- Delete Payload does not need configuration.
-
Navigate to
Settings > Plugins > Notion > Custom Payload
. -
Click the Add Button.
-
Set a title (required) and subtitle (optional) for the filter.
Titles cannot be duplicated.
-
Keep the type as a filter.
-
Choose the database to query (required).
-
Select the cache type based on your needs.
- Disabled: Pages will not be cached, and search will be in real-time.
- BuildAndWait: Initiates API call when the flow becomes visible, and if the filter is triggered while the API has not responded yet, it will wait for the response.
- BuildWithoutWaiting: Similar to the previous option, but if the filter is triggered and the API has not responded yet, it will display old cached pages until new data is received.
- BuildWithTimeout: Like the previous option, with the added feature of setting a timeout for the API. If the API exceeds the specified timeout, it will display old cache.
-
Create a new payload
JSON
(if left empty, the entire database will be queried) or use this filter.For more information about how you can create more advanced filters, navigate to notion.
{
"and": [
{
"property": "Due",
"date": {
"on_or_before": "{{current date}}"
}
},
{
"or": [
{
"property": "Status",
"status": {
"equals": "π΅"
}
},
{
"property": "Status",
"status": {
"equals": "π"
}
}
]
}
]
}
- This filter represents this on the Notion UI
- Click the Add button and trigger the plugin; you should see the advanced filter or search for it by title.
-
Similar to a filter, but the key difference is that
- Property payloads query in the context menu (Shift + Enter {or right arrow}) on the page in the query.
- Property payloads JSON differs from Filter payloads.
- It is possible to select multiple databases. If a page does not belong to the payload databases, the custom payload will not appear on its context menu.
-
Paste your own Payload (JSON) or edit these to match your needs.
{ "properties": { "Status": { "status": { "name": "β " } } } }
This JSON will set the property name "Status" of type "status" into the option "β ". You can also combine more than one property.
{ "properties": { "Status": { "status": { "name": "β " } }, "Latest Review": { "date": { "start": "{{current date}}", } } } }
This JSON will do the same as before, setting the start date of the latest review to the current date.
Right now, the plugin only supports converting to dates.
-
To add a date variable, set the variable within two curly brackets; only use spaces to separate words, like
{{current date}}
. -
To check if your variable is supported, try typing it in the query; if it gives a result, this means it's supported.
UNDER CONSTRUCTION
- You can't change the database after selecting the multi-select option. If so, the plugin will neglect the specified page title, and you'll need to start typing it again from the beginning.
If you're enjoying the Notion Plugin, your support would mean a lot. It helps keep the plugin updated and allows for further development. You can buy me a coffee at Ko-fi or contribute through PayPal.
Please also help spread the word by sharing about the Flow launcher Notion Plugin on Twitter, Reddit, or any other social media platform you regularly use.
The source code for this plugin is licensed under MIT.