# Sync schedules

> How quickly changes reach ShopAssist on each platform, when the nightly reconcile runs, and how to start a sync manually.

Source: https://shopassist.coec.dk/docs/catalog/sync-schedules · Updated 2026-10-01

Changes reach ShopAssist through webhooks or plugin pushes within about a minute. Scheduled syncs catch anything a webhook missed, and a nightly reconcile compares the whole catalog and removes deleted products.

| Platform    | Real time                      | Safety sync                              | Nightly reconcile                                                 | Pages and policies                     |
| ----------- | ------------------------------ | ---------------------------------------- | ----------------------------------------------------------------- | -------------------------------------- |
| Shopify     | Webhooks                       | Every 15 minutes                         | Product id comparison; a full export once a week                  | Every 6 hours                          |
| Magento 2   | Module pushes on save          | Every 15 minutes                         | Hash comparison of the whole catalog; hourly with content staging | Every 6 hours                          |
| WooCommerce | Plugin pushes on save          | Every 15 minutes                         | Hash comparison; a full export once a week                        | Every 6 hours                          |
| PrestaShop  | Change log pulled on each ping | Every 5 minutes                          | Hash comparison; a full export once a week                        | Every 6 hours                          |
| Generic     | Catalog Push API               | Each feed on its schedule (≥ 60 minutes) | Forced refetch of every feed                                      | From the Push API or knowledge sources |

Bursts of changes to one product are combined: ShopAssist waits 30–45 seconds after the last change before it fetches the product.

## Start a sync manually [#manual]

**Catalog → Sync** has three buttons:

* **Sync changes now** fetches recent changes.
* **Refresh pages & policies** re-imports content.
* **Full reconcile** compares the whole catalog (up to 4 per day).

Generic stores also get **Fetch feed now** per feed. Only one sync of each kind runs at a time; a second request answers "A sync is already running."

## Removals need confirmation when they are large [#shrink-guard]

If a reconcile or full feed would remove more than half of your products (and more than 20), ShopAssist removes nothing and shows "This sync would remove \{n} products". Confirm with **Remove them** if that is intended, for example after cleaning up your catalog. See [`catalog_shrink_suspected`](/docs/troubleshooting/sync-issues#catalog_shrink_suspected).
