---
title: "Upsert Sequence Destination Sync Config"
method: PUT
path: "/api/sequences/{sequence_id}/destination-sync/config"
tags: ["sequences"]
---

# Upsert Sequence Destination Sync Config

`PUT /api/sequences/{sequence_id}/destination-sync/config`

## Request

- Base URL: `https://platform.verbiflow.com/api/bridge`
- URL: `https://platform.verbiflow.com/api/bridge/api/sequences/{sequence_id}/destination-sync/config`
- Auth: one of:
  - HTTP bearer and API key in header `x-flage-org-id`
  - HTTP bearer and API key in header `x-flage-org-slug`

## Path parameters

- `sequence_id` string, required

## Request body

- UpsertDestinationSyncConfigRequest: Complete writable destination-sync configuration. Provider work begins only through an explicit sync operation.
  - `enabled` boolean: Whether destination sync is enabled.
  - `field_mappings` DestinationSyncFieldMappingInput[]: Source-to-CRM property mappings.
    - `constant_value` union: Recursive JSON value: object, array, string, integer, number, boolean, or null.
      - object
      - CampaignJsonValueInput[]
      - string
      - integer
      - number
      - boolean
    - `direction` 'to_destination': Assignment direction from an audience value to the destination.
    - `enabled` boolean: Whether this assignment is enabled.
    - `source_field` string: Audience variable supplying the value when value_source is audience_field.
    - `target_field` string: HubSpot internal property name.
    - `target_object` string: contact, company, or a configured custom-object target key.
    - `value_source` 'audience_field' | 'constant': Read an audience variable or use a fixed value.
  - `inherits_integration_defaults` boolean: Whether unspecified fields inherit workspace integration defaults.
  - `object_mappings` DestinationObjectMappings: Configured CRM targets and scheduling settings.
    - `account_behavior` 'require_company' | 'ignore': Fallback contact-company requirement; contacts.account_behavior takes precedence.
    - `association_rules` DestinationAssociationRules: HubSpot association IDs resolved from the connected provider catalog.
      - `contact_company_association_type_id` integer: HubSpot contact-to-company association type ID from the provider association catalog.
      - `note_contact_association_type_id` integer: HubSpot note-to-contact association type ID from the provider association catalog.
    - `companies` DestinationObjectMapping: CRM object behavior; canonical snake_case keys are shown and historical aliases remain preserved.
      - `account_behavior` 'require_company' | 'ignore': Require a company match for contacts or allow contacts without one.
      - `association_type_id` integer, nullable: Positive HubSpot association type id used to link the custom object to a contact, or null when no association is configured.
      - `contact_association_type_id` integer: Historical alias for association_type_id.
      - `create_missing` boolean: Whether missing custom-object records may be created.
      - `enabled` boolean: Whether this object target is enabled.
      - `key` string: Custom-object routing key used by field mappings.
      - `label` string: Human-readable custom-object label.
      - `mode` 'upsert' | 'associate_only': Create/update records or only associate existing records.
      - `object_type_id` string: HubSpot custom object type, such as 2-123456.
      - `target_object` string: Custom-object target key, when explicitly specified.
      - `unique_property` string: HubSpot unique property used to match records, such as email or domain.
      - `unique_source_field` string: Audience field supplying the unique match value.
      - `update_existing` boolean: Whether existing records may be updated.
    - `contacts` DestinationObjectMapping: CRM object behavior; canonical snake_case keys are shown and historical aliases remain preserved.
      - `account_behavior` 'require_company' | 'ignore': Require a company match for contacts or allow contacts without one.
      - `association_type_id` integer, nullable: Positive HubSpot association type id used to link the custom object to a contact, or null when no association is configured.
      - `contact_association_type_id` integer: Historical alias for association_type_id.
      - `create_missing` boolean: Whether missing custom-object records may be created.
      - `enabled` boolean: Whether this object target is enabled.
      - `key` string: Custom-object routing key used by field mappings.
      - `label` string: Human-readable custom-object label.
      - `mode` 'upsert' | 'associate_only': Create/update records or only associate existing records.
      - `object_type_id` string: HubSpot custom object type, such as 2-123456.
      - `target_object` string: Custom-object target key, when explicitly specified.
      - `unique_property` string: HubSpot unique property used to match records, such as email or domain.
      - `unique_source_field` string: Audience field supplying the unique match value.
      - `update_existing` boolean: Whether existing records may be updated.
    - `custom_objects` DestinationObjectMapping[]: Custom HubSpot targets and association rules.
      - `account_behavior` 'require_company' | 'ignore': Require a company match for contacts or allow contacts without one.
      - `association_type_id` integer, nullable: Positive HubSpot association type id used to link the custom object to a contact, or null when no association is configured.
      - `contact_association_type_id` integer: Historical alias for association_type_id.
      - `create_missing` boolean: Whether missing custom-object records may be created.
      - `enabled` boolean: Whether this object target is enabled.
      - `key` string: Custom-object routing key used by field mappings.
      - `label` string: Human-readable custom-object label.
      - `mode` 'upsert' | 'associate_only': Create/update records or only associate existing records.
      - `object_type_id` string: HubSpot custom object type, such as 2-123456.
      - `target_object` string: Custom-object target key, when explicitly specified.
      - `unique_property` string: HubSpot unique property used to match records, such as email or domain.
      - `unique_source_field` string: Audience field supplying the unique match value.
      - `update_existing` boolean: Whether existing records may be updated.
    - `deals` DestinationObjectMapping: CRM object behavior; canonical snake_case keys are shown and historical aliases remain preserved.
      - `account_behavior` 'require_company' | 'ignore': Require a company match for contacts or allow contacts without one.
      - `association_type_id` integer, nullable: Positive HubSpot association type id used to link the custom object to a contact, or null when no association is configured.
      - `contact_association_type_id` integer: Historical alias for association_type_id.
      - `create_missing` boolean: Whether missing custom-object records may be created.
      - `enabled` boolean: Whether this object target is enabled.
      - `key` string: Custom-object routing key used by field mappings.
      - `label` string: Human-readable custom-object label.
      - `mode` 'upsert' | 'associate_only': Create/update records or only associate existing records.
      - `object_type_id` string: HubSpot custom object type, such as 2-123456.
      - `target_object` string: Custom-object target key, when explicitly specified.
      - `unique_property` string: HubSpot unique property used to match records, such as email or domain.
      - `unique_source_field` string: Audience field supplying the unique match value.
      - `update_existing` boolean: Whether existing records may be updated.
    - `schedule` DestinationSyncSchedule: System-owned sync cadence.
      - `cadence_minutes` 15: Recurring destination sync cadence in minutes; currently fixed at 15.
  - `provider` 'hubspot': CRM provider receiving synchronized records.
  - `record_creation_policy` 'immediate_on_audience' | 'on_first_enabled_engagement' | 'manual_only': Rules controlling creation versus update-only behavior.
  - `schedule_enabled` boolean: Whether scheduled destination sync is enabled.
  - `trigger_config` DestinationSyncTriggers: Engagement events that trigger first-engagement record creation.
    - `email_auto_reply` boolean: Whether email auto reply enables record creation.
    - `email_bounced` boolean: Whether email bounced enables record creation.
    - `email_clicked` boolean: Whether email clicked enables record creation.
    - `email_opened` boolean: Whether email opened enables record creation.
    - `email_replied` boolean: Whether email replied enables record creation.
    - `email_sent` boolean: Whether email sent enables record creation.
    - `linkedin_connection_sent` boolean: Whether linkedin connection sent enables record creation.
    - `linkedin_replied` boolean: Whether linkedin replied enables record creation.
    - `manual_reply_sent` boolean: Whether manual reply sent enables record creation.

## Response `200`

Successful Response

- DestinationSyncConfigResponse: Effective destination-sync config plus recent durable jobs.
  - `config` DestinationSyncConfigPayload, required: Effective CRM destination-sync configuration for a campaign.
    - `config_id` string, nullable: Stable destination-sync configuration id.
    - `enabled` boolean: Whether destination sync is enabled.
    - `field_mappings` DestinationSyncFieldMappingOutput[]: Source-to-CRM property mappings.
      - `constant_value` union: Recursive JSON value: object, array, string, integer, number, boolean, or null.
        - object
        - CampaignJsonValueOutput[]
        - string
        - integer
        - number
        - boolean
      - `direction` 'to_destination': Assignment direction from an audience value to the destination.
      - `enabled` boolean: Whether this assignment is enabled.
      - `source_field` string: Audience variable supplying the value when value_source is audience_field.
      - `target_field` string: HubSpot internal property name.
      - `target_object` string: contact, company, or a configured custom-object target key.
      - `value_source` 'audience_field' | 'constant': Read an audience variable or use a fixed value.
    - `inherits_integration_defaults` boolean: Whether unspecified fields inherit workspace integration defaults.
    - `object_mappings` DestinationObjectMappings: Configured CRM targets and scheduling settings.
      - `account_behavior` 'require_company' | 'ignore': Fallback contact-company requirement; contacts.account_behavior takes precedence.
      - `association_rules` DestinationAssociationRules: HubSpot association IDs resolved from the connected provider catalog.
        - `contact_company_association_type_id` integer: HubSpot contact-to-company association type ID from the provider association catalog.
        - `note_contact_association_type_id` integer: HubSpot note-to-contact association type ID from the provider association catalog.
      - `companies` DestinationObjectMapping: CRM object behavior; canonical snake_case keys are shown and historical aliases remain preserved.
        - `account_behavior` 'require_company' | 'ignore': Require a company match for contacts or allow contacts without one.
        - `association_type_id` integer, nullable: Positive HubSpot association type id used to link the custom object to a contact, or null when no association is configured.
        - `contact_association_type_id` integer: Historical alias for association_type_id.
        - `create_missing` boolean: Whether missing custom-object records may be created.
        - `enabled` boolean: Whether this object target is enabled.
        - `key` string: Custom-object routing key used by field mappings.
        - `label` string: Human-readable custom-object label.
        - `mode` 'upsert' | 'associate_only': Create/update records or only associate existing records.
        - `object_type_id` string: HubSpot custom object type, such as 2-123456.
        - `target_object` string: Custom-object target key, when explicitly specified.
        - `unique_property` string: HubSpot unique property used to match records, such as email or domain.
        - `unique_source_field` string: Audience field supplying the unique match value.
        - `update_existing` boolean: Whether existing records may be updated.
      - `contacts` DestinationObjectMapping: CRM object behavior; canonical snake_case keys are shown and historical aliases remain preserved.
        - `account_behavior` 'require_company' | 'ignore': Require a company match for contacts or allow contacts without one.
        - `association_type_id` integer, nullable: Positive HubSpot association type id used to link the custom object to a contact, or null when no association is configured.
        - `contact_association_type_id` integer: Historical alias for association_type_id.
        - `create_missing` boolean: Whether missing custom-object records may be created.
        - `enabled` boolean: Whether this object target is enabled.
        - `key` string: Custom-object routing key used by field mappings.
        - `label` string: Human-readable custom-object label.
        - `mode` 'upsert' | 'associate_only': Create/update records or only associate existing records.
        - `object_type_id` string: HubSpot custom object type, such as 2-123456.
        - `target_object` string: Custom-object target key, when explicitly specified.
        - `unique_property` string: HubSpot unique property used to match records, such as email or domain.
        - `unique_source_field` string: Audience field supplying the unique match value.
        - `update_existing` boolean: Whether existing records may be updated.
      - `custom_objects` DestinationObjectMapping[]: Custom HubSpot targets and association rules.
        - `account_behavior` 'require_company' | 'ignore': Require a company match for contacts or allow contacts without one.
        - `association_type_id` integer, nullable: Positive HubSpot association type id used to link the custom object to a contact, or null when no association is configured.
        - `contact_association_type_id` integer: Historical alias for association_type_id.
        - `create_missing` boolean: Whether missing custom-object records may be created.
        - `enabled` boolean: Whether this object target is enabled.
        - `key` string: Custom-object routing key used by field mappings.
        - `label` string: Human-readable custom-object label.
        - `mode` 'upsert' | 'associate_only': Create/update records or only associate existing records.
        - `object_type_id` string: HubSpot custom object type, such as 2-123456.
        - `target_object` string: Custom-object target key, when explicitly specified.
        - `unique_property` string: HubSpot unique property used to match records, such as email or domain.
        - `unique_source_field` string: Audience field supplying the unique match value.
        - `update_existing` boolean: Whether existing records may be updated.
      - `deals` DestinationObjectMapping: CRM object behavior; canonical snake_case keys are shown and historical aliases remain preserved.
        - `account_behavior` 'require_company' | 'ignore': Require a company match for contacts or allow contacts without one.
        - `association_type_id` integer, nullable: Positive HubSpot association type id used to link the custom object to a contact, or null when no association is configured.
        - `contact_association_type_id` integer: Historical alias for association_type_id.
        - `create_missing` boolean: Whether missing custom-object records may be created.
        - `enabled` boolean: Whether this object target is enabled.
        - `key` string: Custom-object routing key used by field mappings.
        - `label` string: Human-readable custom-object label.
        - `mode` 'upsert' | 'associate_only': Create/update records or only associate existing records.
        - `object_type_id` string: HubSpot custom object type, such as 2-123456.
        - `target_object` string: Custom-object target key, when explicitly specified.
        - `unique_property` string: HubSpot unique property used to match records, such as email or domain.
        - `unique_source_field` string: Audience field supplying the unique match value.
        - `update_existing` boolean: Whether existing records may be updated.
      - `schedule` DestinationSyncSchedule: System-owned sync cadence.
        - `cadence_minutes` 15: Recurring destination sync cadence in minutes; currently fixed at 15.
    - `provider` 'hubspot': CRM provider receiving synchronized records.
    - `record_creation_policy` 'immediate_on_audience' | 'on_first_enabled_engagement' | 'manual_only': Rules controlling creation versus update-only behavior.
    - `schedule_enabled` boolean: Whether scheduled destination sync is enabled.
    - `trigger_config` DestinationSyncTriggers: Engagement events that trigger first-engagement record creation.
      - `email_auto_reply` boolean: Whether email auto reply enables record creation.
      - `email_bounced` boolean: Whether email bounced enables record creation.
      - `email_clicked` boolean: Whether email clicked enables record creation.
      - `email_opened` boolean: Whether email opened enables record creation.
      - `email_replied` boolean: Whether email replied enables record creation.
      - `email_sent` boolean: Whether email sent enables record creation.
      - `linkedin_connection_sent` boolean: Whether linkedin connection sent enables record creation.
      - `linkedin_replied` boolean: Whether linkedin replied enables record creation.
      - `manual_reply_sent` boolean: Whether manual reply sent enables record creation.
    - `updated_at` string, date-time, nullable: Time when destination-sync config last changed.
  - `has_workspace_defaults` boolean: Whether workspace-level destination defaults exist.
  - `recent_jobs` DestinationSyncJobPayload[]: Recent durable destination-sync executions.
    - `counts` DestinationSyncCounts: Counts of target rows by destination-sync state.
      - `failed` integer: Failed targets.
      - `partial` integer: Partially synchronized targets.
      - `queued` integer: Targets waiting for work.
      - `skipped` integer: Skipped targets.
      - `synced` integer: Fully synchronized targets.
      - `syncing` integer: Targets currently synchronizing.
      - `total` integer: All job targets.
    - `created_at` string, date-time, required: Time when the sync job was admitted.
    - `error_message` string, nullable: Sanitized terminal job error.
    - `job_id` string, required: Durable destination-sync job id.
    - `provider` 'hubspot', required: CRM provider receiving the sync.
    - `selection_mode` 'all' | 'visible' | 'explicit' | 'trigger' | 'scheduled', required: All-eligible or explicit-contact audience selection.
    - `status` 'queued' | 'running' | 'completed' | 'failed' | 'partial', required: Current queued, running, completed, or failed sync state.
    - `target_count` integer: Audience contacts selected for synchronization.
    - `updated_at` string, date-time, required: Time when the sync job last changed.
    - `workflow_run_id` string, nullable: Durable workflow run controlling the sync.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract.md) - [All operations](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract/llms.txt) - [OpenAPI document](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract/revisions/c80e903ef8f3?raw)
