Bulk Sync

Update Bulk Sync

Changed on

Updates an existing bulk sync's top-level configuration.

Updating a bulk sync is a full replacement of the sync's top-level configuration. Every field in the request body is written to the sync; any field you omit is cleared or reset to its default value. An empty or omitted policies list leaves the sync's current policies unchanged.

To make a partial change — for example, toggling active or swapping a schedule — fetch the current sync with GET /api/bulk/syncs/{id}, modify the fields you want to change, and send the complete object back in the update request.

Updates to active, schedules, and policies take effect immediately. Changes to source or destination configuration take effect on the sync's next execution.

Because omitted fields are reset to their defaults, the discovery and naming options behave the same as on create when left out:

  • automatically_add_new_objects resets to not enabling newly discovered source objects automatically.
  • automatically_add_new_fields resets to enabling newly discovered fields on already selected objects.
  • normalize_names resets to enabled.

Send the existing values explicitly if you want to preserve a non-default or non-empty setting.

📘 Updating schemas

When schemas is present, it replaces the sync's schema selection: schemas not in the list are disabled. When schemas is omitted or empty, the sync's schemas are left unchanged. Use the Update Bulk Sync Schemas endpoint to change a subset of schemas, or Update Bulk Sync Schema to replace a single schema's configuration.

put/api/bulk/syncs/{id}

Request

  • Base URL
    https://app.polytomic.com
  • Auth
    • HTTP bearer
    • or HTTP basic

Path parameters

idstring uuid required

Unique identifier of the bulk sync to update

Example:248df4b7-aa70-47b8-a036-33ac447e668d

Headers

X-Polytomic-Versionstring

Request body

activeboolean nullable

Whether the sync is active. Inactive syncs do not run on their schedule but can still be triggered manually.

automatically_add_new_fields'all' | 'onlyIncremental' | 'onlyNonIncremental' | 'none' nullable
automatically_add_new_objects'all' | 'onlyIncremental' | 'onlyNonIncremental' | 'none' nullable
concurrency_limitinteger nullable

Override the default concurrency limit for this sync.

data_cutoff_timestampstring date-time nullable

Global cutoff applied across schemas. Source records older than this timestamp are excluded from sync runs.

destination_configurationobject required

Destination-specific bulk sync configuration (e.g. output schema name, file format). The accepted keys depend on the destination connection type.

destination_connection_idstring uuid required

Unique identifier of the connection rows are written to

disable_record_timestampsboolean nullable

When true, Polytomic will not add its own timestamp columns to destination rows.

mode'snapshot' | 'replicate' | 'append' nullable required
namestring required

Human-readable name for the bulk sync

normalize_names'enabled' | 'disabled' | 'legacy' nullable
organization_idstring uuid nullable

Ignored for user and organization-scoped API keys, which always act in their own organization

policiesstring[] nullable

Permissions policy IDs applied to the bulk sync. On update, a non-empty list replaces the bulk sync's policies and an empty or omitted list leaves them unchanged.

resync_concurrency_limitinteger nullable

Override the default resync concurrency limit for this sync.

source_configurationobject nullable

Source-specific bulk sync configuration (e.g. replication slot name, sync lookback). The accepted keys depend on the source connection type.

source_connection_idstring uuid required

Unique identifier of the connection rows are read from

Example request

{
  "active": true,
  "additional_schedules": [
    {
      "day_of_week": "1",
      "frequency": "weekly",
      "hour": "12",
      "minute": "30",
      "selective_mode": "nonincrementalFields"
    },
    {
      "frequency": "continuous",
      "selective_mode": "incrementalFields"
    }
  ],
  "concurrency_limit": 50,
  "data_cutoff_timestamp": "2023-04-25T12:00:00Z",
  "default_schedule": {
    "day_of_month": "1",
    "day_of_week": "1",
    "hour": "12",
    "id": "248df4b7-aa70-47b8-a036-33ac447e668d",
    "minute": "30",
    "month": "1"
  },
  "destination_configuration": {
    "schema": "my_schema"
  },
  "destination_connection_id": "248df4b7-aa70-47b8-a036-33ac447e668d",
  "name": "My Bulk Sync",
  "organization_id": "248df4b7-aa70-47b8-a036-33ac447e668d",
  "policies": [
    "248df4b7-aa70-47b8-a036-33ac447e668d"
  ],
  "resync_concurrency_limit": 10,
  "schemas": [
    {
      "data_cutoff_timestamp": "2023-04-25T12:00:00Z",
      "disable_data_cutoff": true,
      "enabled": true,
      "fields": [
        {
          "enabled": true,
          "obfuscate": true,
          "user_output_name": "my_email"
        }
      ],
      "filters": [
        {
          "field_id": "field1",
          "value": "value"
        }
      ],
      "user_output_name": "my_contact"
    }
  ],
  "source_configuration": {
    "replication_slot": "slot"
  },
  "source_connection_id": "248df4b7-aa70-47b8-a036-33ac447e668d"
}

Response

OK

Example response

{
  "data": {
    "active": true,
    "additional_schedules": [
      {
        "created_at": "2023-04-25T12:00:00Z",
        "created_by": {
          "id": "12345678-1234-1234-1234-123456789012",
          "name": "John Doe",
          "type": "user"
        },
        "day_of_week": "1",
        "frequency": "weekly",
        "hour": "12",
        "minute": "30",
        "selective_mode": "nonincrementalFields",
        "updated_at": "2023-04-25T12:00:00Z",
        "updated_by": {
          "id": "12345678-1234-1234-1234-123456789012",
          "name": "John Doe",
          "type": "user"
        }
      },
      {
        "created_at": "2023-04-25T12:00:00Z",
        "created_by": {
          "id": "12345678-1234-1234-1234-123456789012",
          "name": "John Doe",
          "type": "user"
        },
        "frequency": "continuous",
        "selective_mode": "incrementalFields",
        "updated_at": "2023-04-25T12:00:00Z",
        "updated_by": {
          "id": "12345678-1234-1234-1234-123456789012",
          "name": "John Doe",
          "type": "user"
        }
      }
    ],
    "concurrency_limit": 50,
    "created_by": {
      "id": "12345678-1234-1234-1234-123456789012",
      "name": "John Doe",
      "type": "user"
    },
    "data_cutoff_timestamp": "2023-04-25T12:00:00Z",
    "default_schedule": {
      "created_by": {
        "id": "12345678-1234-1234-1234-123456789012",
        "name": "John Doe",
        "type": "user"
      },
      "day_of_month": "1",
      "day_of_week": "1",
      "hour": "12",
      "id": "248df4b7-aa70-47b8-a036-33ac447e668d",
      "minute": "30",
      "month": "1",
      "updated_by": {
        "id": "12345678-1234-1234-1234-123456789012",
        "name": "John Doe",
        "type": "user"
      }
    },
    "destination_configuration": {
      "schema": "my_schema"
    },
    "destination_connection_id": "248df4b7-aa70-47b8-a036-33ac447e668d",
    "id": "248df4b7-aa70-47b8-a036-33ac447e668d",
    "name": "My Bulk Sync",
    "organization_id": "248df4b7-aa70-47b8-a036-33ac447e668d",
    "policies": [
      "248df4b7-aa70-47b8-a036-33ac447e668d"
    ],
    "resync_concurrency_limit": 10,
    "source_configuration": {
      "replication_slot": "slot"
    },
    "source_connection_id": "248df4b7-aa70-47b8-a036-33ac447e668d",
    "updated_by": {
      "id": "12345678-1234-1234-1234-123456789012",
      "name": "John Doe",
      "type": "user"
    }
  }
}

Changes

    • breaking

      added to the request property allOf list

    • breaking

      added to the request property allOf list

    • breaking

      added to the request property allOf list

    • breaking

      added to the // request property allOf list

    • breaking

      added to the // request property allOf list

    • breaking

      added to the request property allOf list

    • breaking

      added to the request property allOf list

    • breaking

      added to the ///// request property allOf list

    • breaking

      added to the // request property allOf list

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      removed the enum value ArrayContains of the request property /////

    • breaking

      removed the enum value ArrayDoesNotContain of the request property /////

    • breaking

      removed the enum value Between of the request property /////

    • breaking

      removed the enum value Equality of the request property /////

    • breaking

      removed the enum value False of the request property /////

    • breaking

      removed the enum value GreaterThan of the request property /////

    • breaking

      removed the enum value GreaterThanEqual of the request property /////

    • breaking

      removed the enum value InTheLast of the request property /////

    • breaking

      removed the enum value Inequality of the request property /////

    • breaking

      removed the enum value IsNotNull of the request property /////

    • breaking

      removed the enum value IsNull of the request property /////

    • breaking

      removed the enum value LessThan of the request property /////

    • breaking

      removed the enum value LessThanEqual of the request property /////

    • breaking

      removed the enum value OnOrAfter of the request property /////

    • breaking

      removed the enum value OnOrBefore of the request property /////

    • breaking

      removed the enum value RelativeOnOrAfter of the request property /////

    • breaking

      removed the enum value RelativeOnOrBefore of the request property /////

    • breaking

      removed the enum value StringContains of the request property /////

    • breaking

      removed the enum value StringDoesNotContain of the request property /////

    • breaking

      removed the enum value StringDoesNotEndWith of the request property /////

    • breaking

      removed the enum value StringDoesNotStartWith of the request property /////

    • breaking

      removed the enum value StringEndsWith of the request property /////

    • breaking

      removed the enum value StringLike of the request property /////

    • breaking

      removed the enum value StringMatchesTrimmed of the request property /////

    • breaking

      removed the enum value StringNotLike of the request property /////

    • breaking

      removed the enum value StringNotOneOf of the request property /////

    • breaking

      removed the enum value StringOneOf of the request property /////

    • breaking

      removed the enum value StringStartsWith of the request property /////

    • breaking

      removed the enum value True of the request property /////

    • breaking

      removed the enum value all of the request property

    • breaking

      removed the enum value all of the request property

    • breaking

      removed the enum value append of the request property

    • breaking

      removed the enum value builder of the request property //

    • breaking

      removed the enum value continuous of the request property //

    • breaking

      removed the enum value custom of the request property //

    • breaking

      removed the enum value daily of the request property //

    • breaking

      removed the enum value dbtcloud of the request property //

    • breaking

      removed the enum value disabled of the request property

    • breaking

      removed the enum value enabled of the request property

    • breaking

      removed the enum value hourly of the request property //

    • breaking

      removed the enum value incrementalFields of the request property //

    • breaking

      removed the enum value legacy of the request property

    • breaking

      removed the enum value manual of the request property //

    • breaking

      removed the enum value multi of the request property //

    • breaking

      removed the enum value none of the request property //

    • breaking

      removed the enum value none of the request property

    • breaking

      removed the enum value none of the request property

    • breaking

      removed the enum value nonincrementalFields of the request property //

    • breaking

      removed the enum value normal of the request property //

    • breaking

      removed the enum value onlyIncremental of the request property

    • breaking

      removed the enum value onlyIncremental of the request property

    • breaking

      removed the enum value onlyNonIncremental of the request property

    • breaking

      removed the enum value onlyNonIncremental of the request property

    • breaking

      removed the enum value rebuild of the request property //

    • breaking

      removed the enum value refetch of the request property //

    • breaking

      removed the enum value replicate of the request property

    • breaking

      removed the enum value resync of the request property //

    • breaking

      removed the enum value runafter of the request property //

    • breaking

      removed the enum value snapshot of the request property

    • breaking

      removed the enum value weekly of the request property //

    • breaking

      the // request property type changed from string to no type

    • breaking

      the // request property type changed from string to no type

    • breaking

      the // request property type changed from string to no type

    • breaking

      the request property type changed from string to no type

    • breaking

      the request property type changed from string to no type

    • breaking

      the request property type changed from object to no type

    • breaking

      the request property type changed from string to no type

    • breaking

      the request property type changed from string to no type

    • breaking

      the ///// request property type changed from string to no type

    • breaking

      the response's property type changed from object to no type for status

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • info

      added to the response property allOf list for the response status

    • warning

      added the new append enum value to the / response property for the response status

    • info

      added the new append enum value to the request property