The official Notion API released into public beta today (May 13, 2021), meaning that we can now start connecting Notion up to other apps!
If you’re curious about how you can start using the API today, this guide is for you. If you want to connect apps like Google Calendar, Gmail, Typeform, Slack, etc. to Notion, this guide is also for you.
Most importantly, this guide is aimed at non-developers. That includes yours truly; while I do understand Notion formulas (and Excel formulas, which are quite similar), I’m a total greenhorn when it comes to terms like REST API. I’m your classic non-coder.
Fortunately, apps like Automate.io, Zapier, and Typeform have already launched integrations that allow you to build no-code workflows and connect to 3,000+ apps.
In this guide, I’ll briefly explain Notion’s API, what an API is, and which integration tool you should use – Zapier vs. Automate.io.
In the video tutorial above, I’ll also walk you through three initial workflows that I’ve built:
- Sending Typeform survey responses to a Notion database
- Sending notes to a Notion database via email
- One-way calendar sync from Notion to Google Calendar
Remember that the API is currently in a beta state, so many changes and updates will be coming down the line. Still, the tools we have available to us today at launch are more than adequate for building some pretty cool stuff!
What is an API?
If most of your experience with Notion has consisted of creating pages and blocks inside the app, you’re probably like:
“Hold up a minute – what the heck is an API?”
API stands for Application Programming Interface. An API is essentially a set of tools that an app can provide to other developers in order to:
- Connect to it
- Communicate back and forth with it
- Make changes to it
Most of the large apps and web apps that we use today have APIs, including Slack, Gmail, Google Calendar, Todoist, Twitter, Facebook, and more.
External developers use these APIs to build apps – or integrations inside bigger apps – that can communicate with these tools.
For example, you may have synced events between Apple’s Calendar app (built into iOS and macOS) with Google Calendar. I know I do.
This is possible because both Apple Calendar and Google Calendar have their own APIs. When you go into the Settings app in iOS and add your Google account so that events sync between both calendar apps, the APIs are doing the heavy lifting behind the scenes.
If you’d like to learn more about APIs in general, check out this guide: What is an API and How Does It Work? However, it is not essential to have a deep understanding of APIs in order to use the integrations featured in this guide.
What is the Notion API?
Put simply, the Notion API is Notion’s set of tools and instructions that allow developers to write code that communicates with Notion.
Like all other APIs, there is an API reference that developers can use to build their integrations. This reference contains all the commands that developers can use in their code.
In the near future, we’ll likely start to see custom integrations built into many apps that you recognize, like Slack, AirTable, Asana, etc.
For now, though, we can already connect many of these apps up to the Notion API using intermediary apps like Automate.io and Zapier. (Currently IFTTT and Integromat don’t have integrations for Notion).
All of these apps essentially do that same thing: They connect to tons of APIs for many different apps, and provide a way to connect the apps together. In other words, even if there isn’t an official integration for two specific apps, you can probably make one with these tools.
The Notion API is no different; through both Automate.io and Zapier, you can create workflows where Notion is either:
- The Trigger (i.e. a change in Notion kicks off a workflow)
- The Action (i.e. something else starts the workflow, which results in a change being made on Notion)
…or it can be both!
Automate.io vs. Zapier
Which is best for integrating Notion with other apps – Zapier or Automate.io?
These apps both have strengths and weaknesses. However, currently I think the best intermediary tool to use with the Notion API is Automate.io. I have a few reasons for this opinion.
Note that I am comparing each tool’s lowest-cost paid plan – Zapier’s Starter Plan vs. Automate.io’s Personal Plan.
- Automate.io is significantly less expensive than Zapier. The lowest-level paid plan on Zapier (which gets you access to multi-step workflows – a necessity for many workflows) is $19/mo when paid annually. Automate.io costs only $9.99/mo, with the caveat that this lower-tier plan must be bought annually.
- Automate.io checks for updates every 5 minutes on this Personal plan. Zapier’s checks every 15 minutes.
- Most importantly, Zapier only allows you to create new Notion pages when Notion is set as the trigger app. Automate.io will let you create new pages and update existing ones.
Zapier does have quite a few points in its favor, though:
- Zapier can connect to far more apps. According to each tool’s home page, Zapier has connections with 3,000+ apps, while Automate.io currently only connect to 200+.
- Zapier’s Starter plan lets you have 20 active “Zaps” vs. Automate.io’s mere 10 “bots.
- Zapier lets you run 750 tasks/month by default. On Automate.io, you can only run 600.
- Zapier gives you 3 connections to “Premium” apps, while Automate.io only gives you 1.
The main reason to go with Zapier would be the far, far more expansive library of app connections. It’s why I can put “3,000+ apps” in my blog post title.
Additionally, if you are willing to upgrade to Zapier’s $49/mo Professional plan, you get access to their Paths feature. This allows you to create if/then steps and branching logic in your Zaps, which could be very useful for many types of integrations. In Automate.io, this is not possible. You have to create a separate bot for each if/then possibility.
However, due to the absence of the ability to trigger a Zap when an existing Notion page is updated, Zapier takes a backseat to Automate.io in terms of actual usefulness. I anticipate that this will change in the very near future.
Note: If you’re slightly more technical, the API connector tool Pipedream also launched an integration today. It also has pretty robust free plan, but you do need to have more technical knowledge to use it.
Limitations in Zapier and Automate.io
As mentioned above, Zapier is currently more limited than Automate.io due to its lack of a “Page Updated” trigger for Notion.
However, both platforms also have a few other significant limitations that should be mentioned. These are due both to a lack of functions on each platform, and lack of capability in Notion’s API:
- Neither Automate.io nor Zapier can trigger when a Notion page is deleted/archived, nor can they delete a Notion page.
- When sending page content to Notion, text will be put into a single block by default. Via the API, blocks can only hold 2,000 characters. Automate.io will throw an error if you try to pass more than this, and it will also let you split text and send to multiple blocks when building bots. Zapier will not do either of these – if you send more than 2,000 characters to a page’s content area, it’ll just send the 2,000 and clip off the rest.
- The API can really only pass text and numerical content to Notion at the moment. You won’t be able to update properties like Selects and Multi-Selects using data from other apps, though you can pass a default value when creating your bot or Zap. Text, Number, Phone, URL, and Email fields can accept data without a problem.
- Dates can be passed to Notion, but if they do not contain a timestamp, Notion automatically applies 00:00 UTC. This unfortunately will trick Notion’s filters into believing the date is actually the previous day (i.e. “May 15 00:00 UTC” will show up in a filter designed for “May 14”). I’ve reached out to the development team to ask about a fix for this.
- File attachments, images, and other media can’t currently be sent to Notion via the API.
I’ll keep this section updated as things change!
Learn How to Use Notion
If you’re just beginning with Notion, you can learn the basics in my free & public Notion Fundamentals course. All the lessons are live on this website and on YouTube, but you can also get access to a version inside Notion, which you can duplicate and experiment with. Happy learning!
Also, if you enjoy this content and want more, consider joining my Notion Tips email list! I’ll keep you up to speed on my Notion courses, but also let you know when I publish new free tutorials and templates:
Notion Tips Newsletter
Get updates about my Notion templates and tutorials. Easily unsubscribe at any time.