Creates a new model sync.
Create a new sync from one or more models to a destination.
All of the functionality described in [the product
documentation](https://docs.polytomic.com/docs/sync-destinations) is
configurable via the API.
Guides:
- [Model sync (Reverse ETL) from Snowflake query to Salesforce](../../guides/code-examples/model-sync-reverse-etl-from-snowflake-query-to-salesforce)
- [Joined model sync from Postgres, Airtable, and Stripe to Hubspot](../../guides/code-examples/joined-model-sync-from-postgres-airtable-and-stripe-to-hubspot)
## Targets (Destinations)
Polytomic refers to a model sync's destination as the "target object", or
target. Target objects are identified by a connection ID and an object ID.
The `target` object in the request specifies information about the sync destination.
```json
"target": {
"connection_id": "248df4b7-aa70-47b8-a036-33ac447e668d",
"object": "Users",
},
```
Some connections support additional configuration for targets. For example,
[Salesforce
connections](../../guides/configuring-your-connections/connections/salesforce#target)
support optionally specifying the ingestion API to use. The target specific
options are passed as `configuration`; consult the [integration
guides](../../guides/configuring-your-connections/overview)
for details about specific connection configurations.
### Creating a new target
Some integrations support creating a new target when creating a model sync. For
example, an ad audience or database table.
When creating a new target, `object` is omitted and `create` is specified
instead. The `create` property is an object containing integration specific
configuration for the new target.
```json
"target": {
"connection_id": "248df4b7-aa70-47b8-a036-33ac447e668d",
"create": {
"name": "New audience",
"type": "user_audience"
}
},
```
Request
This endpoint expects an object.
fieldslist of objectsRequired
Fields to sync from source to destination.
activebooleanOptional
Whether the sync is enabled and scheduled.
encryption_passphrasestringOptional
Passphrase for encrypting the sync data.
filter_logicstringOptional
Logical expression combining this sync’s model filters — the entries in ‘filters’ whose ‘field_type’ is ‘Model’ — by their labels. The operators are not case-sensitive but the labels are, and the expression has to name every model filter at least once — a filter may be repeated, as in ‘(A and B) or (A and C)’ — and an expression which leaves one out is rejected. Target filters are combined by ‘target.filter_logic’.
filterslist of objects or nullOptional
Filters on this sync. The array holds both filters on the records read from the source and filters on the records written to the destination; a filter’s ‘field_type’ says which it is.
only_enrich_updatesbooleanOptional
Whether to use enrichment models as a source of possible changes to sync. If true, only changes to the base models will cause a record to sync.
organization_idstring or nullOptionalformat: "uuid"
Organization ID for the sync; read-only with a partner key.
override_fieldslist of objects or nullOptional
Target fields which are set to a fixed value for every record, rather than mapped from a model field.
overrideslist of objects or nullOptional
Conditional value replacement for fields.
policieslist of strings or nullOptional
skip_initial_backfillbooleanOptional
Whether to skip the initial backfill of records; if true only records seen after the sync is enabled will be synced.
sync_all_recordsbooleanOptional
Whether to sync all records from the source, regardless of whether they've changed since the previous execution.