---
title: "Update integration bulk sync and list targeting"
method: PATCH
path: "/integrations/{id}"
tags: ["Integrations"]
---

# Update integration bulk sync and list targeting

`PATCH /integrations/{id}`

Controls what a connected integration does to the contact list. Two independent settings - `syncEnabled` turns bulk imports and backfills on or off, and `listIds` chooses which lists the contacts the provider's live webhook creates join. Neither stops that webhook: disabling bulk sync only pauses full imports, and list targeting changes membership only. Contacts are still created, their attributes still sync, sync-rule tags still apply, and sequences triggered by contact_added on any list still enroll them. `listIds` 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 applies targeting only when its webhook creates a subscriber. Provider support is declared in the catalog's `actions` as set_list_targeting. At least one field is required, an in-flight sync must finish before bulk sync can be disabled, and setting the current state succeeds with `changed: false`. Requires the integrations:manage scope.

## Path parameters

- `id` string, required

## Request body

- object — At least one field is required.
  - `syncEnabled` boolean — True to enable bulk imports and backfills, false to pause them. This does not stop the provider's live webhook creating contacts.
  - `listIds` string[], nullable — 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; a populated array means exactly those lists. Every ID must belong to this company.

## Response `200`

Ingestion controls updated

- object
  - `success` boolean
  - `integrationId` string
  - `provider` string
  - `syncEnabled` boolean — Bulk import and backfill state after the update.
  - `listTargeting` 'company_default' | 'none' | 'specific', nullable — Where contacts created by this integration land. Null for providers that ignore per-integration list targeting.
  - `listIds` string[], nullable — Configured target lists. Null means new contacts follow the workspace default lists.
  - `changed` boolean — False when the integration was already in the requested state.
  - `changedFields` string[] — Which controls actually moved.
  - `message` string

## Other responses

- `400` — Integration is disconnected, no field was provided, the provider does not expose the requested control, or a list ID is invalid or belongs to another company
- `401` — Unauthorized
- `404` — Integration not found
- `409` — A sync is already in progress; wait for it to finish before disabling

---

[API](https://skmtc.net/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.net/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/revisions/ba3a29c6eb33/schema)
