At Hightouch, we power workflows driven from your data warehouse. Because there are many different types of workflows, there a few concepts that can be helpful for you to understand when building your workflows.
At a high-level, Hightouch enables your workflow by connecting a model to a destination. This is called a sync.
Every model is built off a source. A source is a system that contains the data you wish to move to a destination.
When you build a model, you specify the fields you wish to retrieve from your source. These are fetched as records.
After you built a model, you create a sync. A sync is a set of instructions about how to integrate data from your model to your destination. It specifies a schedule, which could be triggered manually, via Airflow/dbt or another integration, or at a regular schedule.
When we run a sync, we fetch the data from your source as specified in your model and we compare each record by the unique identifier you specified when creating the model. From there, we find changes that may be either new records, changed records, or deleted records and we update the destination as specified in the sync.
Depending on your destination there may be one or more supported sync modes. The insert mode will only add new records to your destination. The upsert mode will add new records and update existing records. The update mode will only update existing records.
Some destinations may also have more than one sync type. These refer to more complex representations of your data. Most destinations have a single sync type, called objects. These are single records that represent some unique thing. Some destinations, like Iterable, have events, these are multiple records that describe something that happened. Some destinations like Slack also have notifications, these are messages that are constructed based on the underlying record.