How Reverse ETL Works
This page explains how reverse ETL integrations work: the role of the model and destination object, how changed records are computed, and what successful, rejected, and invalid mean.
Model and Destination Object
The model is a SQL query that runs against your warehouse. Its result set — the rows and columns — is the data that can be synced. You choose a destination object (e.g. Contact in HubSpot) that receives those rows. Field mapping defines which model column maps to which destination field and which columns form the primary key in source and destination. Matia uses the primary key to decide whether to insert, update, or delete a record in the destination.
Changed Records
On each sync, Matia computes changed records: rows that need to be inserted, updated, or deleted in the destination so that the destination reflects the model result according to the sync mode. The number and type of changes depend on:
- What the model returns (new rows, modified rows, rows no longer present).
- The sync mode (Mirror vs Upsert vs Update only / Delete only).
- The primary key and how the destination matches records.
The Status tab shows changed records per sync and a breakdown of how many were successful, rejected, or invalid.
Successful, Rejected, Invalid
- Successful: The record was pushed to the destination and accepted. The destination confirmed the insert, update, or delete.
- Rejected: The destination refused the request (e.g. validation error, rate limit, invalid field value). For each rejected record, Matia shows the API request and response so you can debug (e.g. fix mapping, data type, or business rules).
- Invalid: Matia marked the record as invalid before sending it — e.g. duplicate primary key when a single primary key is expected, or a validation failure in Matia. Invalid records are not sent to the destination.
Use the Status tab breakdown and sample records to fix mapping, SQL, or destination configuration.
Sync Modes (Summary)
- Mirror: Sync inserts, updates, and deletes; keep the destination in sync with the model result.
- Upsert: Sync inserts and updates only; push new records and update existing ones; do not delete.
- Update only / Delete only: Supported for specific destinations; only the corresponding operation is performed.
For full reference, see Sync modes and destinations and Models and destination objects.