Skip to main content
Trackstar keeps your data fresh by periodically pulling from each connected integration, normalizing the results, and making them available through the Trackstar API and webhooks. There are three ways a sync can happen:
  • Scheduled syncs run automatically at predefined intervals. Most of your data arrives this way.
  • Force syncs are manually triggered syncs of recent data, when you don’t want to wait for the next scheduled sync.
  • On-demand syncs backfill a specific data type over a custom time window, for example to pull historical data from before the initial sync.

Sync Types at a Glance

Scheduled Syncs

Default Sync Frequencies

Different data types are synchronized at varying intervals to balance data freshness and system performance. Below is a breakdown of the default synchronization frequencies:
Note: These frequencies are default settings and can be customized per connection. If you need to modify the synchronization interval for a particular data type or connection, please contact us for assistance.

Initial Sync Behavior

Upon establishing a new connection, Trackstar performs an initial synchronization that retrieves data from the past 30 days by default. This historical sync ensures that your system starts with a comprehensive dataset. To adjust the historical lookback window, go to your dashboard’s Connections Settings. New connections can sync up to three years of historical data. When each data type (e.g. inventory, orders) has finished syncing for the first time, we will send a connection.historical-sync-completed event. This indicates data is now available for that data type from our API. Example:
You can also check the sync status of a connection programmatically by calling GET /connections/{id}.

Force Syncs

A force sync is a manually triggered sync. It runs the same sync a schedule would, just immediately, without waiting for the next scheduled run.
A force sync does not sync historical data. To backfill a custom time window, use an on-demand sync.
You can trigger a force sync two ways:
  • Via the Dashboard: Go to the Connections Page, click on the connection you want to sync, and press the resync button for the desired data type.
  • Via the API: Call POST /connections/sync. By default it syncs every data type on the connection; pass functions_to_sync (e.g. ["get_orders", "get_inventory"]) to sync specific ones.
cURL
A few things to know:
  • The sync starts right away, but it may take a few minutes for new data to appear as it completes in the background.
  • If a data type is already mid-sync, the force sync leaves it alone rather than starting a duplicate.
  • When the sync finishes for a data type, Trackstar sends a connection.force-sync-completed event for it.

On-Demand Syncs

On-demand syncs let you trigger a backfill of a specific data type over a custom time window, outside of Trackstar’s normal sync schedule. They’re useful for re-syncing historical data or pulling a longer window of data than the default 30-day initial sync.

Supported Functions

Support is rolled out per integration + function. If you’d like support added for an integration or function, reach out to us and we’ll look into enabling it.

WMS

Available function names:
  • get_orders
  • get_inbound_shipments
  • get_returns
  • get_bills
  • get_inventory_ledger
get_inventory and get_products are intentionally not supported for on-demand syncs. Inventory always syncs as a full snapshot, and the full product catalog is retrieved on a connection’s first sync, so an on-demand sync over a custom range would not change what gets pulled. To refresh either, use a force sync or wait for the next scheduled sync.

Carrier

Available function names:
  • get_invoice_line_items

Cart

Available function names:
  • get_orders
get_products is intentionally not supported for on-demand syncs. The full product catalog is retrieved on a connection’s first sync, so an on-demand sync over a custom range would not change what gets pulled. To refresh products, use a force sync or wait for the next scheduled sync.

Usage

There are three endpoints for managing on-demand syncs: Like all Trackstar API calls, you’ll need to authenticate using your API key and the access token for the specific connection. You can manage on-demand syncs either through the API directly or through the Trackstar dashboard. Each section below shows both options — pick whichever fits your workflow.

Creating a Sync Job

The following parameters are required when creating a sync job via the API:
string
required
ISO 8601 timestamp marking the start of the time window to sync (e.g., 2025-12-01T00:00:00Z).
string
required
ISO 8601 timestamp marking the end of the time window to sync (e.g., 2026-01-01T00:00:00Z).
string
required
The data-fetching function to run. Must be one of the values listed in Supported Functions.
If you attempt to start an on-demand sync for an integration + function combination that isn’t currently enabled, you will receive a 400 response with the message:

Checking Sync Job Status

Use the sync_job_id returned from the create call to check progress. The response includes a status field with one of the following values: A typical successful lifecycle is open → completed. A cancelled job follows open → cancelled, and a job that stops progressing moves open → stuck. The full response also includes id, connection_id, function_name, requested_start_time, requested_end_time, and created_at.
Use the sync_job_id returned from the create call:

Cancelling a Sync Job

If a sync job is no longer needed, you can cancel it before it completes. Only jobs in the open state can be cancelled.

Interaction with Other Syncs

  • Asynchronous execution: On-demand sync jobs run in the background. Poll the status endpoint or rely on Trackstar’s existing webhooks (e.g. order.created, order.updated) to know when new data has landed.
  • Precedence over scheduled syncs: While a sync job is in the open state, the regularly scheduled syncs for that same data type will not run, which can cause its recent data to fall behind. Other data types on the connection keep syncing on their normal schedules. Once no sync jobs remain in the open state for a data type (they complete, are cancelled, or are marked stuck), its scheduled syncs automatically resume from where they left off — so no data is missed, only delayed.

Knowing When Your Data Is Ready

Each kind of sync has its own completion signal: More information on our webhooks can be found in the webhooks documentation.

Stuck Syncs

Occasionally a sync stops making progress — for example when the underlying integration’s API is degraded. Trackstar detects this in two places:
  • Scheduled syncs: if a data type’s regular sync stops making progress, Trackstar sends a connection.schedule-stuck event. Its latest_data field tells you how fresh that data type’s data is, so you know how far behind it may be. Our team is alerted internally and investigates; scheduled syncs resume automatically once the underlying issue is resolved.
  • On-demand sync jobs: a job that stops making progress for an extended period moves to status stuck, and Trackstar sends a connection.sync-job-stuck event. Stuck jobs do not resume on their own — if a job becomes stuck, reach out to us and we’ll investigate.

Disabled Endpoints

If there are data types your business doesn’t use — say you never handle returns — you can disable those endpoints so they stay out of the way entirely. A disabled endpoint:
  • Doesn’t sync. Scheduled syncs stop, force syncs skip it, and creating an on-demand sync job for it returns a 400.
  • Isn’t validated at connect time. End users connecting through Trackstar Link won’t see an attempt to validate permissions for it.
  • Is omitted from available_actions. It no longer appears in the connection’s available actions.
  • Rejects writes. Write calls return a 403 (e.g. create_return is disabled for this connection) without reaching the integration. See Writing Data.
Disabled endpoints resolve in two layers:
  • Org policy: set per integration type (WMS, Cart, Carrier) in the dashboard. Applies to every connection of that type, existing and future.
  • Per-connection adjustments: on top of org policy, the Magic Link that installs a connection can disable extra endpoints for it, or re-enable org-disabled ones.
Go to Connection Settings and open the Disabled Endpoints tab. Toggles are grouped by integration type, and each type’s list is independent — turning off Products for Cart doesn’t affect Products for WMS.Disabled Endpoints tab in Connection Settings, grouped by integration type
Some endpoints rely on data that another endpoint syncs. If a change would disable an endpoint that a still-enabled one depends on — for example disabling inventory while returns, which uses inventory data, stays on — the change is rejected with an error explaining the conflict.
Re-enabling an endpoint is just removing it from the disabled list: its syncs resume automatically and Trackstar backfills the data it missed.

What About Writes?

Writes don’t wait for a sync. When you create or update a resource via POST or PUT, Trackstar forwards the request to the integration in real time and returns its response immediately. See Writing Data for details.