Trigger sync
trigger_syncPush the active Space's campaigns to your connected ad platforms and import remote changes. ASYNCHRONOUS: returns a syncId immediately with status 'started' (or 'nothing_to_sync'); the sync runs in the background. Poll get_sync_status with the syncId until its status is terminal (completed, partial, failed, or cancelled). Spends real ad budget and mutates external platforms. The platform connection is account-wide; the campaigns synced are the active Space's. Fails if a sync is already running in this Space. Scoped to the active Space — see set_active_space to switch, or pass space_id to override for this one call.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Re-export in-scope campaigns even when nothing changed — re-runs the full tree + targeting/extensions/labels. Use to repair campaigns synced before a fix. For campaigns deleted in the ad platform, unlink_campaigns then sync. | |
| options | No | Per-entity toggles: includeAdGroups, includeKeywords, includeAds (all default true). | |
| space_id | No | Override the active Space for this one call. Defaults to the active Space set via set_active_space (or GROWOMAT_SPACE_ID on the server). Pass to read/write a different Space without changing the session binding. | |
| plan_hash | No | Bind execution to a plan you previewed: pass the planHash from preview_sync_plan and the sync runs only if the recomputed plan still matches (else SYNC_PLAN_DRIFT). Makes 'preview then sync' a real safety gate. | |
| platforms | No | Platform ids to sync, e.g. ["google-ads"]. Omit for all connected. | |
| campaign_ids | No | HARD scope: sync ONLY these campaigns, on every platform and phase (import/export/remove). Never silently widened — a plan that would touch a campaign outside this set is rejected (SYNC_SCOPE_EXCEEDED) unless confirm_full_space is set. Omit to plan the whole Space. Pair with preview_sync_plan to see the exact set first. | |
| confirm_full_space | No | Acknowledge a large blast radius. Required when an unscoped whole-Space sync would mutate more than 10 campaigns, or to override SYNC_SCOPE_EXCEEDED. Guards against a one-campaign request silently escalating to the whole Space. |