Notion Two-Way Sync With External Tools: Setup Guide
🔍 WiseChecker

Notion Two-Way Sync With External Tools: Setup Guide

You need to keep Notion databases updated with data from external tools like Google Calendar, Trello, or Asana without manual copying. Notion does not offer native two-way sync for most third-party apps. This guide explains how to set up bidirectional data flow using automation platforms such as Zapier, Make, and Notion's API.

Two-way sync means changes made in Notion reflect in the external tool and changes made in the external tool reflect back in Notion. Achieving this requires careful configuration of triggers and actions in an automation service. You will learn the prerequisites, step-by-step setup for common tools, and how to avoid data conflicts.

By the end of this article, you can connect Notion to an external tool and maintain consistent data in both systems. You will also understand the limitations of two-way sync and how to handle them.

Key Takeaways: Notion Two-Way Sync Setup

  • Zapier or Make (formerly Integromat): The primary platforms used to create bidirectional automations between Notion and external tools.
  • Notion API Integration: Required to allow external services to read and write to your Notion databases; set up in Settings & Members > Connections > Develop or manage integrations.
  • Unique ID field in Notion: A mandatory property (e.g., a formula or external ID) that links records in Notion to records in the external tool, preventing duplicate entries.

How Two-Way Sync Works With Notion

Notion does not provide a built-in two-way sync feature for third-party tools. Instead, you must use an automation platform that acts as a bridge. The platform listens for changes in one system, then writes those changes to the other system. To avoid endless loops, you must configure each automation to trigger only on specific events, such as a new record or an update to a specific field.

The core components of a two-way sync setup are:

  • Automation platform: Zapier, Make, or Microsoft Power Automate. These services connect Notion's API to the external tool's API.
  • Notion API integration: An internal connection that grants the automation platform permission to access your workspace. You create this integration in your Notion workspace settings.
  • Unique identifier field: A property in your Notion database that stores the external tool's record ID. This field is essential for matching records during updates.
  • Directional automations: Two separate automations — one that sends changes from Notion to the external tool, and one that sends changes from the external tool to Notion.

Prerequisites

Before starting the setup, you need the following:

  • A Notion workspace with at least one database.
  • An account on an automation platform (Zapier free plan works for low-volume syncs).
  • An account on the external tool you want to sync with (e.g., Google Calendar, Trello, Asana).
  • Admin access to the Notion workspace to create an integration.
  • A clear understanding of which properties in Notion correspond to fields in the external tool.

Steps to Set Up Two-Way Sync Between Notion and an External Tool

This guide uses Zapier as the automation platform and Google Calendar as the external tool. The same principles apply to other tools and platforms.

  1. Create a Notion API integration
    Go to www.notion.so/my-integrations and click “Create new integration.” Give it a name, select the workspace, and click “Submit.” Copy the Internal Integration Secret token. This token is used by Zapier to authenticate with Notion.
  2. Connect the integration to your Notion database
    Open your Notion database. Click the three-dot menu in the top right, select “Add connections,” and choose the integration you just created. The integration can now read and write to this database.
  3. Add a unique ID property to your Notion database
    Create a property named “External ID” with type “Text.” This field will store the Google Calendar event ID. Without this field, Zapier cannot match records, and updates will create duplicates.
  4. Create the first automation: Google Calendar to Notion
    In Zapier, create a new Zap. Set the trigger app to “Google Calendar” and the event to “New Event.” Connect your Google Calendar account. Then set the action app to “Notion” and the event to “Create Database Item.” Map the event fields to the corresponding Notion database properties. In the “External ID” field, map the Google Calendar event ID. Test and turn on the Zap.
  5. Create the second automation: Notion to Google Calendar
    Create another new Zap. Set the trigger app to “Notion” and the event to “New Database Item.” Connect your Notion account using the integration token. Then set the action app to “Google Calendar” and the event to “Create Detailed Event.” Map the Notion properties to the Google Calendar fields. Test and turn on the Zap.
  6. Add update automations for two-way sync
    Create two more Zaps: one that triggers when a Google Calendar event is updated and updates the corresponding Notion item, and one that triggers when a Notion item is updated and updates the corresponding Google Calendar event. Use the “External ID” field to find the matching record in the other system. In Zapier, use the “Find Event” or “Find Database Item” action before performing the update.

Common Issues and How to Avoid Them

Infinite loops causing duplicate updates

If both automations run on every change, they can trigger each other endlessly. To prevent this, configure each automation to only trigger on changes made by a human or by the external tool, not by the automation itself. In Zapier, use filters. For example, only run the Notion-to-Google Calendar update Zap if the “Last Edited By” property does not contain the name of the integration user.

Duplicate records after the initial sync

If the “External ID” field is empty or not mapped correctly, the update automation will create a new record instead of updating the existing one. Always verify that the external tool's record ID is correctly stored in the Notion database. For existing records before the sync, you may need to backfill the “External ID” field manually or via a one-time script.

Rate limits and sync delays

Notion's API has rate limits (3 requests per second per integration on the Free plan). Automation platforms also have execution limits. High-volume syncs may experience delays or failures. Consider using Make (formerly Integromat) for more granular control over rate limits. Alternatively, batch updates using Notion's API directly with a custom script.

Notion Free vs Plus vs Business: API Limits Compared

Item Notion Free Notion Plus Notion Business
API rate limit per integration 3 requests per second 3 requests per second 3 requests per second
API access Yes Yes Yes
Maximum API request per month (estimated) Unlimited but throttled Unlimited but throttled Unlimited but throttled
File upload size via API 5 MB 5 MB 5 MB
Number of integrations per workspace Unlimited Unlimited Unlimited

All plans offer the same API rate limits. The key difference is the number of database rows and version history, which can affect sync performance on large databases. For high-volume two-way sync, consider upgrading to Plus or Business for larger database limits.

You can now set up a two-way sync between Notion and an external tool using an automation platform. Start with a single database and a low-volume tool like Google Calendar to test the configuration. For advanced setups, explore using Make's router module to handle conditional updates or build a custom sync script using Notion's API and a cloud function.