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.
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.
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.
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’
We need to add two config vars for the integration to work:
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.
Follow this setup steps before using any of these integrations.
Now, let’s continue to the integrations.
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.
Check to make sure that it works, and you should see the weather updated on your Notion page.
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.
Test your Zap and if everything went according to the plan, you should see your email in your 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.
Test your Zap and if everything went according to the plan, you should see your email in your notion table.
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.
Check your Notion table, your task's waiting for you there ;)
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.