Create and configure a reverse ETL model
This guide covers creating and configuring the model (and destination object) for a reverse ETL integration. The model defines which rows and columns are synced from your warehouse to the destination. For concepts, see Reverse ETL overview and How reverse ETL works.
Where the Model is Defined
When creating a reverse ETL integration, you set the model in the Configure step. For an existing integration, open it and go to the Settings tab → Model configuration.
Define the Model (SQL)
- In Model configuration, enter or edit the SQL that selects data from your warehouse. The query result defines the rows and columns sent to the destination. Use filters, joins, and aggregations as needed.
- Use Preview to run the query and see sample rows. Confirm column names and types match what the destination expects.
- Save. The model is used on every sync; changing the SQL changes the data set sent to the destination.
Column names in the result are used for field mapping. Semantic naming (e.g. email, company_name) helps auto-mapping suggest correct destination fields.
Select the Destination Object
In the same configuration step, choose the Destination object — the object in the destination that receives the data (e.g. Contact, Company, or a custom object in HubSpot). This is set when creating the integration and cannot be changed once the integration is created.
Sync Mode and Field Mapping
Set Sync mode (Mirror, Upsert, Update only, or Delete only where supported) and Field mapping (primary keys and column-to-field mappings). See Configure field mapping and Sync modes and destinations.
Test Before Saving
Use Test to push one sample record from the model to the destination. Matia shows which record was sent so you can confirm the mapping and destination behavior before running a full sync.
For reference on models and destination objects, see Models and destination objects.