---
description: >-
  An overview of the different concepts and terms used in building your
  workflows
---

# General Concepts

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.&#x20;

### Your Workflow At A Glance

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.&#x20;

When you build a model, you specify the **fields** you wish to retrieve from your source. These are fetched as **records**.&#x20;

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.&#x20;

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.&#x20;

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.&#x20;



