Skip to main content
PATCH
Update Integration Sync and List Targeting
Control what a connected integration does to your contact list. Two independent settings, and neither one is a stop switch:
listIds changes list membership only. Contacts are still created, their attributes still sync, sync-rule tags still apply, and default any_contact sequences still enroll them. Explicit any_list and specific-list sequences require a matching membership and do not enroll a list-less contact. To stop any_contact enrollments too, pause enrollments on the affected sequences.
Webflow is fail-closed: if no native forms are selected, capture is off and no contacts are created. This endpoint can change only the explicit list IDs for future accepted submissions; form selection, retained fields, required double opt-in, and sequence enrollment remain dashboard-only.
Retargeting takes effect on future provider writes. Nothing is applied retroactively and nobody is ever removed from a list. Wix or Webflow submissions, Shopify customer updates, and Supabase resubscriptions can add an existing contact to the new targets. Stripe is creation-only: its targeting applies when a webhook first creates the subscriber. A plain Supabase row update goes through profile sync and does not touch lists.
To stop a provider feeding the workspace entirely, disconnect the integration using Disconnect Integration for Lemon Squeezy. Other providers disconnect from Settings → Integrations in the dashboard, which runs their provider-specific cleanup. Requires an API key with the integrations:manage scope. Agent-safe keys do not carry it, by design: an agent can read the current state from Get Integration and report the fix, but applying it needs a key with integration management rights. The provider catalog’s actions field identifies which controls a provider exposes: enable_sync/disable_sync and set_list_targeting. List targeting is honored by Supabase, Stripe, Shopify, Wix, and Webflow. A sync already in progress must finish before bulk sync can be disabled.

Request

string
required
Integration ID, from List Integrations.
boolean
true to enable bulk imports and backfills, false to pause them.
string[] | null
Lists that contacts created by this integration join, applied from the provider’s next write onward. null clears the choice so they follow the workspace default lists, [] means they join no list at all, and a populated array means exactly those lists. Every ID must belong to this company. Webflow is the exception: it rejects null and requires [] or explicit list IDs so capture cannot inherit an undisclosed audience. Configure its forms, allowed fields, required double opt-in, and sequence enrollment in the dashboard.
At least one field is required.

Response fields

boolean
false when the integration was already in the requested state. Setting the current state is not an error, so a retry is safe.
string[]
Which controls actually moved.
string | null
company_default, none, or specific. null for providers that ignore per-integration list targeting, which you can reach by toggling syncEnabled on a sync-capable provider such as Polar.
string[] | null
The configured target lists. null means new contacts follow the workspace default lists, and is what a clear-to-default call returns.

Responses