How To

Four ways to sync data between Airtable, Notion, and your database

Ian Yanusko
June 2, 2022
4
min read

Intro

Over the last five years, we’ve seen many startups shift most of their workload into a handful of new multipurpose tools. Among them: Airtable and Notion.

Airtable is a highly functional data tool. Similar to G Sheets but with a more feature-rich environment, Airtable has become the primary data analysis tool for many companies. 

Notion is a flexible, user-friendly web-based tool that can be used for everything from task management, documentation, customer relationship management, and budgeting. Our team uses Notion for 90% of our workflow. 

The problem

The whole point of using Airtable and Notion is to give nontechnical folks the ability to easily work with data. The problem is that often a company’s data primarily sits (or should sit) in a backend database, like MySQL or MongoDB — so, how to bridge the gap between the two?

This problem comes up in many ways. Here are some examples:

  1. Sales & marketing: you scrape leads data online and drop them into your MySQL database, but you need your sales team to vet and qualify those leads without learning SQL.
  2. Customer success: Notion is your customer success HQ, but you have customer data across a ton of sources (Amplitude, Stripe, Zendesk, etc). You can consolidate that data in your Postgres database, but it’s still not touching Notion, so your Notion view is incomplete.
  3. Ops: Your ops team needs to be able to contextualize reasons for missed deadlines, but your SLA data is syncing in MongoDB and your ops team doesn’t know how to edit that data directly. Instead, your engineers are constantly fielding requests for CSV exports, distracting them from product development.

Incomplete or mismatching data, constant requests to engineers… sound familiar? Below, we talk through 4 different ways to sync between Airtable/Notion and your backend DB.

Method #1: Write an internal script

For some teams, the knee-jerk method is to build an internal script. After all, why pay for something you could do yourself?

If you’re just doing one-way syncs, it may be enough to work with the APIs built into your tools and databases. Both Airtable and Notion offer APIs through which you can read and write data (although for Airtable you need the Enterprise plan to get access to webhooks and the metadata API, so we recommend using BaseQL instead). 

However, writing these scripts is a technical process that might be too high a boundary for nontechnical teams. For technical teams, this may distract from product development, especially if the script requires maintenance over time. Often things break at the worst times, as any developer knows :)

Pros: Maximum flexibility & control, tailored to your use case

Cons: Requires valuable engineering resources to build and maintain (which these days cost companies up to $150 / hour, plus the opportunity cost of your engineers’ time), not scalable, no customer service when things go wrong or your data schema changes

Method #2: Use Zapier

Want to use Zapier to do this? It’ll be harder than you think.

These days it seems like Zapier needs no introduction, but in case you haven’t used it yet: Zapier is a low-code way to automate event flows between tools. Want to automatically save email attachments to your Google Drive? There’s a zap for that. Want to automatically add new Facebook message inbounds to your CRM? There’s a zap for that. 

For these sorts of use cases, Zapier is top of class.

But Zapier is not a great tool when it comes to simple data syncing. There are four reasons for this:

  1. You have to set up an individual zap for each possible change to a data table (e.g., you need to set up zaps for record additions, record updates, field additions, etc). 
  2. Each time a zap is run, it eats away at your monthly limit. If you are doing batch updates, this can cause you to hit your limit quickly. 
  3. Unless you are paying for the Professional plan, the fastest your data can sync is every 15 minutes.
  4. Zapier explicitly does not support two-way syncing, so all of the above is only useful if you want one-way syncs.

Pros: No-code, familiar to many people who already use Zapier

Cons: Very high-maintenance to perform simple syncs, difficult to predict usage, and does not support two-way syncs

Method #3: ETL/reverse ETL

If you don’t want to worry about the hassle of writing internal scripts and don’t think Zapier will fit your use case, your next best bet is to use a more technically savvy solution: ETL (or ELT) and reverse ETL. ETL and reverse ETL can help ensure a single source of truth for your company.

ETL: stands for “Extract-Transform-Load.” Imagine you have a number of SaaS apps–like Salesforce, Zoho, and ADP–with important data in them that you’d like to standardize in a data warehouse, like Redshift or BigQuery. With an ETL provider, you can extract from those apps, transform the data so that it’s standardized & cleaned, and load it into the data warehouse. Some common tools are Fivetran, Stitch, and Airbyte.

Reverse ETL: Exactly what it sounds like! Reverse ETL is very similar to ETL, except you’re pulling from your data warehouse into your SaaS apps. Reverse ETL is handy if data in your warehouse is updating frequently, and you want your nontechnical teams to see the most up-to-date data in their SaaS tools. Some common tools are Hightouch, Census, and Grouparoo.

However, ETL and reverse ETL have three drawbacks: 

  1. If you need data to simply sync both ways, ETL and reverse ETL can get complicated: you’ll need two separate providers, meaning two separate sales and billing processes and double payments. You will also need to figure out how to navigate the infinite loop problem.
  2. Not optimized for speed. If you need data to be updated faster than 5 minutes, these tools will probably be frustrating for you
  3. Setup-intensive and costly for smaller companies and startups (a bit like cracking a walnut with a sledgehammer). 

Pros: Robust tools, many options available, a ton of integrations

Cons: Slow syncing speeds, too complicated for many companies and use cases, not able to provide two-way syncs under one roof, and the infinite loop problem.

Method #4: Use Bracket for two-way syncs

Sometimes, you just want the same data to show up in two different places in real-time. Getting your Airtable and Postgres to mirror each other, or your Notion and MongoDB to show the same data, can significantly reduce data sharing frictions on your team. But as shown by the options above, this is surprisingly hard to do!

Our frustrations led us to build Bracket, which does fast bidirectional syncing between tools like Airtable and Notion with any backend database. 

Bracket requires you to write zero code. For the particularly time-constrained teams out there, we’ve even helped set up backend databases for free. Just share your schema with us, and you’ll never have to worry about complicated zaps or internal scripts again.

Pros: built for bidirectionality, extremely tailored to your use case. Only pay for 1 tool to do syncs in either direction

Cons: Still building out integrations for new tools

Want to get your data syncing? Get started with Bracket  here.