• Stars
    star
    781
  • Rank 58,232 (Top 2 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created almost 5 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An Alfred workflow to search Notion with instant results

notion-search-alfred-workflow

An Alfred workflow to search Notion.so with instant results

img

Alfred 5 version

Github Repository

Latest Download

Alfred 4 version

Github Repository

Latest Download

Simply type your keyword into Alfred (default: ns) and provide a query to see instant search results from Notion that mimic the Quick Find function in the Notion webapp.

Pressing enter on a search result takes you to that page in Notion in your default web browser or notion app.

Hold Cmd + press enter on any search result to copy the url to your clipboard.

Comes with pre-configured support for OneUpdater for automatic version updates.

The workflow also provides the ability to quickly see your recently viewed pages. Simply type the 'ns' keyword to start the workflow, as you would before you search, and your most recently viewed notion pages are displayed.

img

Workflow Variables

  • cookie: Needed for your Notion token.
  • notionSpaceId: Your organisation identifier.
  • useDesktopClient: Defaults to False. Determines whether to open Notion links in the desktop client rather than the web app.

It's recommended to leave the following variables to their defaults, unless you're confident:

  • isNavigableOnly: Defaults to False. This settings allows you to search objects within a page, ie notion objects that cannot be found through the left hand side navigation pane. Setting to True only returns results that can be found through the left hand side navigation pane, but removes subtitles from Alred search results.
  • enableIcons: Defaults to True. This toggles support for Notion icons to be shown natively in Alfred search results, for a better design/UX experience. Custom Notion icons are downloaded on demand.
  • iconCacheDays: Defaults to the recommended value of 365 days for the best performance. Defines the number of days to cache custom icons. Min 0, max 365.
  • showRecentlyViewedPages: Defaults to True. This toggle determines if recently viewed pages should be shown when there is no query provided by the user and the user id is present in the supplied cookie (user id is needed for the api call to show recently viewed pages).

Install Steps

Install Python3

Many people will have Python3 already on their machine, if you haven't you can try to run python3 from a Terminal window and it should prompt you to install the Xcode CLI tools automatically (which include Python).

Otherwise you can read a more detailed guide on installing Python here.

Install cairosvg (optional)

Installing cairosvg will allow svg icons to be shown in Alfred search results, providing a more visually appealing experience. Open terminal and run the following command:

pip3 install cairosvg

Install cairosvgs's dependency, cairo. With Homebrew for example:

brew install cairo

If you haven't used homebrew before, you may want to skip this optional step.

Get your workflow variables

I recommend using chrome to retrieve these values. If you can only use safari you can copy the 'token_v2' value by following the equivalent steps above and populating the cookie env variable in Alfred so it looks like this token_v2=XXXXXXXXXXXX (however this means the recently viewed pages feature will not work for you).

Visit the Notion webapp and use your browser developer tools to see the network requests being made when you type in anything to the quick find search bar. In Chrome select 'View' in the toolbar > Developer > Developer Tools. Then select the Network tab in the developer tools window.

Here you'll see a request called search, check the request headers to copy the cookie value and check the request payload to copy your notionSpaceId, as shown in the screenshots below.

Known issue: Some users have experienced issues with copying these values directly from developer tools, but have seen success by copying and pasting the values into TextEdit or a different text editor first, this probably "strips out" or removes any problematic formatting.

img

Get your cookie headers They should look something like this

notion_browser_id=1bcfbfb9-e98c-9f03; logglytrbckingsession=eb1c82cb-fd; bjs_bnonymous_id=%22bdbf1088-b33c-9bdb-b67c-1e; _fbp=fb.1.12821; intercom-id-gpfdrxfd=b61ec62d-; token_v2=b39099...

img

Get your spaceId It should look something like this

celcl9aa-c3l7-7504-ca19-0c985e34ll8d

img

Install the Notion Alfred worflow

Download and double click the latest release for your version of Alfred, following the links at the top of this page.

Add these values to the Notion Alfred workflow

In the Alfred worfklow in the upper right corner click the [x] icon and add the values from above to the corresponding value field

img

Troubleshooting

The script may fail due to an SSL error. If the script isn't working, turn on debugging by clicking on the little cockroach in the alfred workflow screen. If you see an error like:

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: .....

Run this from the terminal app:

sudo '/Applications/Python 3.9/Install Certificates.command'

The single quotes are required. If this file doesn't exist, run "python --version" to find out what version you have and update the directory accordingly.

Tips

  • If you prefer using the Mac app of Notion, set the useDesktopClient environment variable in Alfred to True.
  • If you experience performance issues or slow searches, you may wish to set enableIcons to false. This changes the search results design so icons are in line with the title, it also disables the downloading of any Notion custom icons that you come across whilst searching.

Download:

Follow the links at the top of this page.

Forum topics:

https://www.alfredforum.com/topic/14451-notionso-instant-search-workflow/ https://www.reddit.com/r/NotionSo/comments/f58u1y/notionso_instant_search_workflow_for_alfred/