How to Keep Airtable Sync Active Without Manual Logins
You have set up Airtable Sync to automatically pull data from a source base into a destination base. It works fine when your team is actively using the base. But over weekends, overnight, or during quiet periods, the sync stops updating. By the time someone notices, the synced data is hours out of date.
This is a documented Airtable behaviour, not a bug in your setup. Here is why it happens and how to fix it permanently with an automation.
Why Sync Stops
Airtable's official troubleshooting documentation confirms that automatic syncs can stop running on a destination base that has not had recent activity. When a base has no recent user activity, Airtable puts it into a low-activity state. In this state, automatic sync no longer runs on schedule.
Based on the official docs and widespread community experience, bases can go inactive within an hour or so of no activity. The exact threshold is not publicly documented.
Two important points:
- Records created by the sync itself do not count as user activity. Even if new records are arriving in the synced table, the base can still go inactive.
- The problem affects both the source base and the destination base. Both need to be active for the sync to run. Waking up only one of them is not sufficient.
What Counts as Activity
According to Airtable's official documentation, the following actions keep a base active and restart automatic syncing:
- A user opens the base
- Creating or editing records (by a human, an automation, or the API)
- Running a scheduled automation that modifies data in the base
A scheduled automation that writes a trivial change to a record, like toggling a checkbox on and off, counts as activity and keeps the base from going inactive.
The Fix: A Keep-Alive Automation
Set up a scheduled automation in each base (source and destination) that runs on a regular interval and makes a minor write to a record. This keeps both bases active and ensures sync continues uninterrupted.
Step 1: Add a Checkbox Field
In both your source base and your destination base, add a new field called Keep Alive with the type Checkbox. You can hide this field in all views so it does not clutter the interface.
Pick any record in each base to serve as the keep-alive record. A dedicated record named "Keep Alive Record" in a dedicated table works well.
Step 2: Create the Keep-Alive Automation in the Destination Base
- Open the destination base and go to Automations
- Click + New automation
- Set the trigger to At a scheduled time
- Set the interval. Every 1 hour is a safe choice that stays well within the inactivity threshold. If you only need sync to be reliable during business hours, you can narrow the schedule (for example, 8 AM to 8 PM on weekdays)
- Add an Update record action
- Select the keep-alive record
- Toggle the Keep Alive checkbox to checked
The checkbox is now checked. But after this run, the next run will try to check a box that is already checked. To keep the write meaningful (some users report that a no-op write does not reliably count as activity), add a second update action that immediately unchecks the box.
So the automation has two actions:
- Action 1: Update the keep-alive record, set Keep Alive to checked
- Action 2: Update the same record, set Keep Alive to unchecked
This ensures every run makes an actual write to the base regardless of the current checkbox state.
Step 3: Repeat for the Source Base
Create the same keep-alive automation in your source base. The source base also needs to be active for the sync to run.
If your source base is actively used by your team during business hours, you may only need the keep-alive automation for overnight and weekend coverage.
Step 4: Stagger the Timing
Community experience suggests running the source base keep-alive automation about 10 minutes before the destination base keep-alive automation. This gives the source base time to become active first, so when the destination base wakes up it can immediately pull fresh data.
For example:
- Source base automation: runs at :00 past each hour (9:00, 10:00, 11:00...)
- Destination base automation: runs at :10 past each hour (9:10, 10:10, 11:10...)
Alternative: Trigger Sync Manually When Needed
If your sync only needs to be current at specific times rather than continuously, the simpler approach is to trigger a manual sync when you need it rather than maintaining a keep-alive automation.
Open the synced table in the destination base, click the dropdown arrow next to the table name, and click Sync now. This pulls the latest data immediately and also wakes the base from its inactive state.
This works well for use cases where the data only needs to be current for a meeting, a report, or a specific workflow rather than being continuously up to date.
Checking Sync Status
To confirm whether your sync is currently active or has paused:
- Open the destination base
- Navigate to the synced table
- Click the dropdown arrow next to the synced table name
- Look for the Last synced timestamp and sync status
A sync that has paused due to inactivity typically shows a warning icon and a stale timestamp. Running a manual sync or triggering the keep-alive automation will restart it.
For more on how Airtable Sync works and its limitations, see How to Copy Data From One Airtable Base to Another for a comparison of sync vs other data transfer methods, and How to Limit Automation Runs in Airtable to Save Quota if you are concerned about the keep-alive automation consuming your monthly run quota.