> For the complete documentation index, see [llms.txt](https://docs.notionapps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.notionapps.com/databases/reload-and-sync.md).

# Reload and sync

One sync manual. Workspace pages Reload Data (from app builder), Reload Data (from app), Automatic Reload Data, and Recovery History point here. Product help `autoSync` and `reloadDataFromApp` also point here.

## What this is / when to use it

| Job                                                       | What to use                 | When not to                                                           |
| --------------------------------------------------------- | --------------------------- | --------------------------------------------------------------------- |
| Pull schema + rows into the builder after a Notion change | Sync (builder Databases)    | You only changed app layout — publish instead                         |
| Keep rows fresh on a schedule                             | Auto-sync                   | You need instant Notion→app on every keystroke                        |
| Let a signed-in user pull fresh rows                      | End-user refresh            | Guests on a public list you do not want to hammer                     |
| Undo a bad sync / restore a snapshot                      | Rollback (Recovery History) | You meant to revert a published app version — that is Version History |

```
Sync = builder ← Notion (schema and data).
Publish = users ← builder.
Refresh = live app ← Notion (rows).
Rollback = builder data ← snapshot.
```

## Before you start

1. The integration can see the database.
2. You understand that sync can add, rename, or drop fields in the sheet map. Dropped fields break components. See Save failed.
3. Nobody else should be mid-publish in another tab (409 risk). See Save conflict.

## Build it

### Sync from the builder

1. Open Databases.
2. Select the database.
3. Click Sync / Reload.
4. Read the **health** line and the toast. Do not treat a **Partial** or **Held** result as a full success.
5. Wait until properties and sample rows look right.
6. Open a screen that uses the database. Rebind any component whose property vanished.
7. Publish if end users should see new properties.

### Automatic reload

1. Open Databases → the sheet → Auto-sync.
2. Turn it on. Frequency follows your plan meter (two-way / auto-sync interval).
3. Auto-sync refreshes rows. It is not a substitute for a manual sync after you add a property in Notion — still run a builder sync so the field map updates.

### Reload from the published app

1. On a list or details screen, enable Show reload button when the builder offers it (also documented on Relations for nested lists).
2. Publish.
3. Users tap reload. The app fetches fresh rows for that sheet. It does not change your screen layout. A partial refresh keeps extra local rows.

### Sync Health (Settings → Data)

Open **Settings → Data** for the app-level Sync Health view:

* overall status, last successful sync, active syncs, and issues
* one row per connected database with **Sync Now**, **Retry**, **View details**, and **Create ticket**
* recent sync history

**Sync Now** and **Retry** run the same builder Sync / Reload as Databases. Retry asks for confirmation. Pause / Resume stays with NotionApps support.

### Email alerts

On the same Settings → Data pane, **Email alerts** controls maker mail for sync incidents:

* Immediate or Off for the app
* Sync failure, missing source, permission issue, and recovery are on by default
* Rate-limit mail is off by default (429s already show on Sync Health)
* Repeats of the same problem stay in one incident. You get a recovery email when that incident closes.

We do not email every completed sync or every retry.

## Health after Sync / Reload

| Health                                         | Meaning                                                                   |
| ---------------------------------------------- | ------------------------------------------------------------------------- |
| **Up to date · Compared …**                    | We finished reading. Extra local rows that Notion deleted can be removed. |
| **Partial · more rows than we could read**     | We did not finish. Extra local rows were kept.                            |
| **Held · cleanup paused. Nothing was removed** | A large cleanup was paused on purpose.                                    |
| **Waiting · changes are sending to Notion**    | App edits are still going out.                                            |
| **Access blocked · reconnect Notion**          | The integration cannot read the workspace. Reconnect, then refresh.       |

Reload will **not** remove rows unless we finished reading the database.

| Toast                                                                                               | When you see it                              |
| --------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| Refresh was partial. Extra local rows were kept.                                                    | The read did not finish.                     |
| Refresh was partial. This database has more rows than we were allowed to read. Nothing was removed. | The database is larger than the read window. |
| Reload finished, but a large cleanup was paused. Nothing was removed.                               | Cleanup was held.                            |
| Refreshed recent changes. Nothing was removed.                                                      | Optimized resume of recent edits.            |
| Notion is asking us to wait. Your save is kept and will retry.                                      | Notion rate-limited the connection.          |
| Notion access is blocked. Reconnect, then refresh.                                                  | Token or sharing is broken.                  |

## Published form save state

After a published Create or Update form succeeds locally, the popup keeps your custom success title. The detail line is:

| State                   | Meaning                                                         |
| ----------------------- | --------------------------------------------------------------- |
| **Saved in NotionApps** | We accepted the row. Notion does not have a page yet.           |
| **Sending to Notion**   | The write is in flight or retrying.                             |
| **Confirmed in Notion** | The Notion page exists.                                         |
| **Needs attention**     | The create was lost mid-flight. We will not open a second page. |

A save is kept if Notion is rate-limiting or the job restarts. Submitting the same form again does not create a second Notion page.

## Page content

Show page content is a separate fetch from row properties. A row can be fresh while the embedded Notion page body is stale. Reload page content after you share the page with the integration. Unsync reasons: page not shared, empty, or blocks failed to transform.

### Rollback / Recovery History

1. Open Recovery History (workspace / databases).
2. Pick a snapshot from before the bad sync.
3. Restore. Confirm the field map matches the components you still have.
4. If the app definition is wrong, use Version History instead of Recovery History.

## Every control

| Control             | Options                  | What it does                                                                                                    |
| ------------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------- |
| Sync / Reload       | Manual                   | Rebuilds sheet fields from Notion.                                                                              |
| Auto-sync           | On / off + plan interval | Scheduled row refresh.                                                                                          |
| End-user reload     | Button on screen         | User-triggered row refresh.                                                                                     |
| Recovery History    | Snapshots                | Rollback synced data/schema snapshots.                                                                          |
| Page content reload | Separate fetch           | Notion block body for Show page content. Unsync reasons: page not shared, empty, or blocks failed to transform. |
| Nested list reload  | On relation components   | Refresh related rows only.                                                                                      |

## What users see

Users never see “sync” unless you give them a reload button. They see stale or fresh rows. After you sync a breaking schema change and publish, they see missing fields or failed writes until you fix the map. After they submit a form, they see the save-state line above.

## Limits and plans

Usage meters that touch this page: databases, pages, properties, blocks, two-way sync frequency. See Plans.

* Auto-sync interval is slower on lower plans.
* Page content is not the same payload as row properties. A row can be fresh while the embedded page is stale.
* Rollback does not delete the Notion pages that were created in the meantime.
* Large Notion databases can finish as **Partial**. That is expected. Extra local rows stay.

## Example

You add a Delivered file (files) property in Notion, then rename it. Components still point at the old field id. Builder autosave returns `NoFieldInSheet`. Fix: sync, rebind the file component to the new property, save, publish. If sync made it worse, rollback the snapshot, then rebind.

## Fix problems

| Symptom                         | Likely cause                                      | What to do                                                            |
| ------------------------------- | ------------------------------------------------- | --------------------------------------------------------------------- |
| Databases missing               | Not shared                                        | Share with the integration.                                           |
| Auto-sync “on” but schema stale | Auto-sync is rows, not properties                 | Manual sync.                                                          |
| Data stopped syncing            | Token, sharing, or plan                           | My data has stopped syncing.                                          |
| Health is Partial or Held       | We did not finish the read, or cleanup was paused | Extra rows were kept. Retry later. Do not assume Notion deleted them. |
| Page content empty              | Unshared page or transform fail                   | Re-share. Reload page content.                                        |
| Save failed after sync          | Orphan component                                  | Save failed.                                                          |

## Related

Notion property types. Version History. Settings → Data. [Recalculate calculated properties](https://docs.notionapps.com/how-to-guides/recalculate-calculated-properties). [16 Sep 2026 Release](https://docs.notionapps.com/release-notes/16-sep-2026-release). [14 Sep 2026 Release](https://docs.notionapps.com/release-notes/14-sep-2026-release). Next on the maker path: Data restriction vs filters.
