Notion, the hottest productivity app of the moment, has been promising an API for quite a while. As of today, the official API is nowhere in sight.
In this post, Iâll showcase 4 custom integrations between Notion and Zapier that Iâve built to experiment with Notionâs possible use-cases.
Integrating Notion with Zapier
Iâve been experimenting with an unofficial Notion API for a while, after seeing some interesting (although very specific) use cases.
Recently, Iâve created a way to send generic Zaps to Notion, allowing users to build custom zaps. That solution was limited because it didnât allow users to create complex integrations for specific use cases.
To make the integration more usable, Iâve expanded on the previous project and created 4 custom Notion integrations that you can implement today.
The integrations in this article allow you to:
Add daily weather data to your Notion page automaticallySend receipt emails from Gmail to a custom Receipt database in NotionTrack incoming mentions and tweets in Notion (including user data)Send tasks from To-Do apps into a Notion database.
Letâs dive in.
This project is open-source and available here for anyone interested in expanding, refactoring or using it for their own project.
Step 1 â Set up a Heroku Server
On each of these integrations, youâll have to set up a Heroku server first.
This Heroku instance will be used to add environment variables such as your Notion blockâs URL and your Token.
This Heroku instance will be used to add environment variables such as your Notion blockâs URL and your Token.
Hereâs what you need to get started:
First, find your token and URL
There are two parameters that youâll need to add to the Heroku setup.
TOKEN parameter â to find your Notion token, go to your Notion accountâs URL and click the lock icon on the left.
2. URL â get the URL by clicking Share, then âCopy Page Linkâ on the upper right side.
Save these two parameters for later.
Deploy your own Heroku server
Letâs set up a Heroku server that will get requests from Zapier and integrate with your Notion account.
1. Click here
2. Name your app (any name will do)
3. Click âManage Appâ
1. Click here
2. Name your app (any name will do)
3. Click âManage Appâ
We need to add two config vars for the integration to work:Â
1. TOKEN : <Your Token>
2. URL : <Your URL>
1. TOKEN : <Your Token>
2. URL : <Your URL>
Once this is done, youâre ready to set up your Zapier integration.
Youâll need the Heroku serverâs URL for the next steps, so make sure you copy it.
Youâll need the Heroku serverâs URL for the next steps, so make sure you copy it.
Follow this setup steps before using any of these integrations.
Now, letâs continue to the integrations.
Integration #1: Add weather reporting to your Notion page
Using this integration, youâll be able to get todayâs temperature in your Notion page. You can use the same endpoint (using the exact same parameters) to update any Notion text block based on a string input.
1. Notion
Set up a block where you want the temperature to show.
Next, copy the blockâs URL
2. Heroku
Follow the Setup steps from Stage 1 and paste the copied URL into the URL variable.
3. Zapier
First, create a recurring zap that fetches weather data daily.
Use Schedule by Zapier as the trigger, adding a daily trigger at a specific time. Then, add another step and pick the Weather Zapier app. Fill in the details as shown in the GIF below.
Now that your Weather zap is ready, itâs time to send the data to notion.
Add your Heroku appâs URL and add /getweather
Fill in the parameters as shown in the GIF. feel free to customize the value in any way youâd like. You can add additional information from the custom fields as long as itâs all inside the same value.
Fill in the parameters as shown in the GIF. feel free to customize the value in any way youâd like. You can add additional information from the custom fields as long as itâs all inside the same value.
Check to make sure that it works, and you should see the weather updated on your Notion page.
Integration #2: Send every receipt from Gmail to a Notion Table
The integration allows you to send receipts that were labeled in Gmail into Notion, so you can track your spend, attach receipts to your accounting pages, etc.
1. Notion
Set up a table, whether inline or full page, with the exact structure of the below table:
The naming and property type should be identical for the integration to work. Notice that the Date property is a text property, since using Date has led to a ton of bugs, and the text property is the only reliable way to get the date in the table.
Next, copy the tableâs URL.
2. Heroku
Now that youâve got the link, follow the Heroku Setup steps from Stage 1, paste the copied URL into the URL variable and continue to Zapier.
3. Zapier
Set up a Gmail Zap for New Labeled Email. Pick the label that youâre using to label receipts.
Add your Heroku appâs URL and add /gmailreceipts
Fill in the parameters as shown below.
Fill in the parameters as shown below.
Test your Zap and if everything went according to the plan, you should see your email in your notion table.
Integration #3: Send tweets (content and twitter profile) that mentioned you to a Notion table.
I have showcased this use case in my previous post about the Notion integration. Still, I felt that in order for this integration to be valuable, the table should also show the Twitter handle of the sender. Hereâs how youâd set this up.
1. Notion
Set up a table, whether inline or full page, following the exact structure in the image:
Itâs crucial that the property names and types would be identical.
Next, click the three dots on the left and copy the tableâs link and copy the tableâs link.
2. Heroku
Set up a new Heroku server with the steps mention in the first part of this tutorial, and paste the table link in the URL parameter of the Config Vars input.
3. Zapier
Create a Twitter Zap for Search Mentions. Enter your own twitter handle as the âmentionâ.
Add your Heroku appâs URL and add /twitter
Fill in the parameters as shown below.
Fill in the parameters as shown below.
Test your Zap and if everything went according to the plan, you should see your email in your notion table.
Integration #4: Send Tasks from Todoist/Tasks to Notion
The integration allows you to send tasks from pretty much any Todo app that works with Zapier.
1. Notion
Set up a Todo table. For this integration to work, make sure The task property is named âTaskâ.
Next, copy the tableâs URL
2. Heroku
Follow the Heroku Setup steps from Stage 1 and paste the copied URL into the URL variable mentioned.
3. Zapier
Create a Zap for your favorite To-do app, that triggers on New Task (or similar).
Add your Heroku appâs URL and add / tasks
Fill in the parameters as shown below.
Fill in the parameters as shown below.
Check your Notion table, your task's waiting for you there ;)
Whatâs Next?
Hopefully, these integrations have sparked your imagination regarding possible use cases for Notionâs API.
If youâre interested in helping the project and creating more endpoints or have ideas for interesting use cases, join me on Github. If youâre interested in reading more about my Notion integrations, check out the recent posts here.