From 43c6ef88ee55f9552ce708578f9c9bb6cda403c9 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Wed, 15 May 2024 14:22:37 -0400
Subject: [PATCH 01/37] RETL refresh draft 1
---
src/_data/catalog/warehouse.yml | 6 +
src/connections/reverse-etl/faq.md | 25 ++
src/connections/reverse-etl/index.md | 337 +-----------------
src/connections/reverse-etl/mappings.md | 83 +++++
src/connections/reverse-etl/observability.md | 31 ++
.../reverse-etl/reverse-etl-catalog.md | 29 +-
.../azure-setup.md | 2 +-
.../bigquery-setup.md | 2 +
.../databricks-setup.md | 2 +-
.../postgres-setup.md | 2 +
.../redshift-setup.md | 2 +
.../snowflake-setup.md | 10 +-
src/connections/reverse-etl/setup.md | 149 ++++++++
src/connections/reverse-etl/system.md | 53 +++
14 files changed, 397 insertions(+), 336 deletions(-)
create mode 100644 src/connections/reverse-etl/faq.md
create mode 100644 src/connections/reverse-etl/mappings.md
create mode 100644 src/connections/reverse-etl/observability.md
create mode 100644 src/connections/reverse-etl/setup.md
create mode 100644 src/connections/reverse-etl/system.md
diff --git a/src/_data/catalog/warehouse.yml b/src/_data/catalog/warehouse.yml
index dad11ce6d9..cd914735ca 100644
--- a/src/_data/catalog/warehouse.yml
+++ b/src/_data/catalog/warehouse.yml
@@ -53,6 +53,7 @@ items:
url: 'https://cdn.filepicker.io/api/file/EUJvt69Q7qMqCvGrVtiu'
categories:
- Warehouses
+ - RETL
- display_name: BigQuery
slug: bigquery
name: catalog/warehouses/bigquery
@@ -71,6 +72,7 @@ items:
url: 'https://cdn.filepicker.io/api/file/Vk6iFlMvQeynbg30ZEtt'
categories:
- Warehouses
+ - RETL
- display_name: Databricks
slug: databricks
name: catalog/warehouses/databricks
@@ -89,6 +91,7 @@ items:
url: ''
categories:
- Warehouses
+ - RETL
- display_name: Google Cloud Storage
slug: google-cloud-storage
name: catalog/warehouses/google-cloud-storage
@@ -143,6 +146,7 @@ items:
url: ''
categories:
- Warehouses
+ - RETL
- display_name: Redshift
slug: redshift
name: catalog/warehouses/redshift
@@ -161,6 +165,7 @@ items:
url: ''
categories:
- Warehouses
+ - RETL
- display_name: Segment Data Lakes
slug: data-lakes
name: catalog/warehouse/data-lakes
@@ -197,6 +202,7 @@ items:
url: 'https://cdn.filepicker.io/api/file/OBhrGoCRKaSyvAhDX3fw'
categories:
- Warehouses
+ - RETL
settings:
- name: bucket
diff --git a/src/connections/reverse-etl/faq.md b/src/connections/reverse-etl/faq.md
new file mode 100644
index 0000000000..6e792a4f8c
--- /dev/null
+++ b/src/connections/reverse-etl/faq.md
@@ -0,0 +1,25 @@
+---
+title: Reverse ETL FAQ
+beta: false
+---
+
+## Troubleshooting
+
+### Why do my sync results show *No records extracted* when I select *Updated records* after I enable the mapping?
+It's expected that when you select **Updated records** the records do not change after the first sync. During the first sync, the reverse ETL system calculates a snapshot of all the results and creates records in the `_segment_reverse_etl` schema. All the records are considered as *Added records* instead of *Updated records* at this time. The records can only meet the *Updated records* condition when the underlying values change after the first sync completes.
+
+### Can I be notified when Reverse ETL syncs fail?
+Yes, you can sign up for Reverse ETL sync notifications.
+
+To receive Reverse ETL sync notifications:
+1. Navigate to **Settings > User Preferences**.
+2. Select **Reverse ETL** In the **Activity Notifications** section.
+3. Enable the toggle for **Reverse ETL Sync Failed**.
+
+In case of consecutive failures, Segment sends notifications for every sync failure. Segment doesn't send notifications for partial failures.
+
+## Does Segment use Transport Layer Security (TLS) for the connection between Snowflake and Segment?
+Segment uses the [gosnowflake library](https://pkg.go.dev/github.com/snowflakedb/gosnowflake#pkg-variables){:target="_blank"} to connect with Snowflake, which internally uses TLS for the HTTP transport.
+
+## Can I have multiple queries in the Query Builder?
+No. In Reverse ETL, Segment executes queries in a [common table expression](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#with_clause){:target="_blank”}, which can only bind the results from **one single** subquery. If there are multiple semicolons `;` in the query, they'll be treated as several subqueries (even if the second part is only an inline comment) and cause syntax errors.
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index 0ba7ee8cbf..999eb01dac 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -5,341 +5,14 @@ redirect_from:
- '/reverse-etl/'
---
-Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse using a query you provide, and syncs the data to your 3rd party destinations. For example, with Reverse ETL, you can sync records from Snowflake to Mixpanel. Reverse ETL supports event and object data. This includes customer profile data, subscriptions, product tables, shopping cart tables, and more.
+Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse using a query you provide and syncs the data to your third party destinations. For example, with Reverse ETL, you can sync records from Snowflake to Mixpanel. Reverse ETL supports event and object data. This includes customer profile data, subscriptions, product tables, shopping cart tables, and more.
+
+
## Example use cases
Use Reverse ETL when you want to:
* Sync audiences and other data built in the warehouse to Braze, Hubspot, or Salesforce Marketing Cloud for personalized marketing campaigns.
* Sync enriched data to Mixpanel for a more complete view of the customer, or enrich Segment Unify with data from the warehouse.
-* Send data in the warehouse back into Segment as events that can be activated in all supported destinations, including Twilio Engage and other platforms.
+* Send data in the warehouse back into Segment as events that can be activated in all supported destinations, including Twilio Engage.
* Pass offline or enriched data to conversion APIs like Facebook, Google Ads, TikTok, or Snapchat.
-* Connect Google Sheets to a view in the warehouse for other business teams to have access to up-to-date reports.
-
-## Getting started
-There are four components to Reverse ETL: Sources, Models, Destinations, and Mappings.
-
-
-
-Follow these 4 steps to set up Reverse ETL and learn what each component is about:
-1. [Add a source](#step-1-add-a-source)
-2. [Add a model](#step-2-add-a-model)
-3. [Add a destination](#step-3-add-a-destination)
-4. [Create mappings](#step-4-create-mappings)
-
-> info ""
-> The UI navigation and interface will look different from what's presented in the docs until Reverse ETL rolls out to all users for GA.
-
-### Step 1: Add a source
-A source is where your data originates from. Traditionally in Segment, a [source](/docs/connections/sources/#what-is-a-source) is a website, server library, mobile SDK, or cloud application which can send data into Segment. In Reverse ETL, your data warehouse is the source.
-
-To add your warehouse as a source:
-
-> warning ""
-> You need to be a user that has both read and write access to the warehouse.
-
-1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab in the Segment app.
-2. Click **+ Add Reverse ETL source**.
-3. Select the source you want to add.
-4. Follow the corresponding setup guide for your Reverse ETL source.
- * [Azure Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup/)
- * [BigQuery Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup/)
- * [Databricks Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup/)
- * [Postgres Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup/)
- * [Redshift Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup/)
- * [Snowflake Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup/)
-5. Add the account information for your source.
- * For Snowflake users: Learn more about the Snowflake Account ID [here](https://docs.snowflake.com/en/user-guide/admin-account-identifier.html){:target="_blank"}.
-5. Click **Test Connection** to test to see if the connection works.
-6. Click **Add source** if the test connection is successful.
-
-After you add your data warehouse as a source, you can [add a model](#step-2-add-a-model) to your source.
-
-### Step 2: Add a model
-Models are SQL queries that define sets of data you want to synchronize to your Reverse ETL destinations. After you add your source, you can add a model.
-
-To add your first model:
-1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab. Select your source and click **Add Model**.
-2. Click **SQL Editor** as your modeling method. (Segment will add more modeling methods in the future.)
-3. Enter the SQL query that’ll define your model. Your model is used to map data to your Reverse ETL destinations.
-4. Choose a column to use as the unique identifier for each record in the **Unique Identifier column** field.
- * The Unique Identifier should be a column with unique values per record to ensure checkpointing works as expected. It can potentially be a primary key. This column is used to detect new, updated, and deleted records.
-5. Click **Preview** to see a preview of the results of your SQL query. The data from the preview is extracted from the first 10 records of your warehouse.
- * Segment caches preview queries and result sets in the UI, and stores the preview cache at the source level. If you make two queries for the same source, Segment returns identical preview results. However, during the next synchronization, the latest data will be sent to the connected destinations.
-6. Click **Next**.
-7. Enter your **Model Name**.
-8. Click **Create Model**.
-
-To add multiple models to your source, repeat steps 1-8 above.
-
-### Step 3: Add a destination
-Once you’ve added a model, you need to add a destination. In Reverse ETL, destinations are the business tools or apps you use that Segment syncs the data from your warehouse to.
-
-If your destination is not listed in the Reverse ETL catalog, use the [Segment Connections Destination](#segment-connections-destination) to send data from your Reverse ETL warehouse to your destination.
-
-> info ""
-> Depending on the destination, you may need to know certain endpoints and have specific credentials to configure the destination.
-
-To add your first destination:
-1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
-2. Click **Add Reverse ETL destination**.
-3. Select the destination you want to connect to and click **Configure**.
-4. Select the Reverse ETL source you want to connect the destination to.
-5. Enter the **Destination name** and click **Create Destination**.
-6. Enter the required information on the **Settings** tab of the destination.
-7. Navigate to the destination settings tab and enable the destination. If the destination is disabled, then Segment won't be able to start sync.
-
-### Step 4: Create mappings
-After you’ve added a destination, you can create mappings from your warehouse to the destination. Mappings enable you to map the data you extract from your warehouse to the fields in your destination.
-
-To create a mapping:
-1. Navigate to **Conections > Destinations** and select the **Reverse ETL** tab.
-2. Select the destination that you want to create a mapping for.
-3. Click **Add Mapping**.
-4. Select the model to sync from.
-5. Select the **Action** you want to sync and click **Next**.
- * Actions determine the information sent to the destination. The list of Actions will be unique to each destination.
-6. Add the mapping's name. The initial name will default to the Action's name (e.g. 'Track Event') but is completely customizable. It will allow you to identify the mapping amongst others.
-7. In the **Select record to map and send** section, select which records to send to your destination after Segment completes extracting data based on your model. You can choose from:
- * Added records
- * Updated records
- * Added or updated records
- * Deleted records
-8. Select a test record to preview the fields that you can map to your destination in the **Add test record** field.
-9. Select the Schedule type for the times you want the model’s data to be extracted from your warehouse. You can choose from:
- * **Interval**: Extractions perform based on a selected time cycle.
- * **Day and time**: Extractions perform at specific times on selected days of the week.
-10. Select how often you want the schedule to sync in **Schedule configuration**.
- * For an **Interval** schedule type, you can choose from: 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 6 hours, 8 hours, 12 hours, 1 day.
- * 15 minutes is considered real-time for warehouse syncs
- * For a **Day and time** schedule type, you can choose the day(s) you’d like the schedule to sync as well as the time.
- * You can only choose to start the extraction at the top of the hour.
- * Scheduling multiple extractions to start at the same time inside the same data warehouse causes extraction errors.
-11. Define how to map the record columns from your model to your destination in the **Select Mappings** section.
- * You map the fields that come from your source, to fields that the destination expects to find. Fields on the destination side depend on the type of action selected.
- * If you're setting up a destination action, depending on the destination, some mapping fields may require data to be in the form of an object or array. See the [supported objects and arrays for mapping](#supported-object-and-arrays).
-12. *(Optional)* Send a test record to verify the mappings correctly send to your destination.
-13. Click **Create Mapping**.
-14. Select the destination you’d like to enable on the **My Destinations** page under **Reverse ETL > Destinations**.
-15. Turn the toggle on for the **Mapping Status**. Events that match the trigger condition in the mapping will be sent to the destination.
- * If you disable the mapping state to the destination, events that match the trigger condition in the mapping won’t be sent to the destination.
-
-To add multiple mappings from your warehouse to your destination, repeat steps 1-13 above.
-
-## Using Reverse ETL
-After you've followed [all four steps](/docs/connections/reverse-etl/#getting-started) and set up your source, model, destination, and mappings for Reverse ETL, your data will extract and sync to your destination(s) right away if you chose an interval schedule. If you set your data to extract at a specific day and time, the extraction will take place then.
-
-### Managing syncs
-
-#### Sync history and observability
-Check the status of your data extractions and see details of your syncs. Click into failed records to view additional details on the error, sample payloads to help you debug the issue, and recommended actions.
-
-To check the status of your extractions:
-1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
-2. Select the destination you want to view.
-3. Select the mapping you want to view.
-4. Click the sync you want to view to get details of the sync. You can view:
- * The status of the sync.
- * Details of how long it took for the sync to complete.
- * How many total records were extracted, as well as a breakdown of the number of records added, updated, and deleted.
- * The load results - how many successful records were synced as well as how many records were updated, deleted, or are new.
-5. If your sync failed, click the failed reason to get more details on the error and view sample payloads to help troubleshoot the issue.
-
-#### Reset syncs
-You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model.
-
-To reset a sync:
-1. Select the three dots next to **Sync now**.
-2. Select **Reset sync**.
-3. Select the checkbox that you understand what happens when a sync is reset.
-4. Click **Reset sync**.
-
-#### Replays
-You can choose to replay syncs. To replay a specific sync, contact [friends@segment.com](mailto:friends@segment.com). Keep in mind that triggering a replay resyncs all records for a given sync.
-
-#### Email alerts
-You can opt in to receive email alerts regarding notifications for Reverse ETL.
-
-To subscribe to email alerts:
-1. Navigate to **Settings > User Preferences**.
-2. Select **Reverse ETL** in the **Activity Notifications** section.
-3. Click the toggle on for the notifications you want to receive. You can choose from:
-
- Notification | Details
- ------ | -------
- Reverse ETL Sync Failed | Set toggle on to receive notification when your Reverse ETL sync fails.
- Reverse ETL Sync Partial Success | Set toggle on to receive notification when your Reverse ETL sync is partially successful.
-
-### Edit your model
-
-To edit your model:
-1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
-2. Select the source and the model you want to edit.
-3. On the overview tab, click **Edit** to edit your query.
-4. Click the **Settings** tab to edit the model name or change the schedule settings.
-
-### Edit your mapping
-
-To edit your mapping:
-1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
-2. Select the destination and the mapping you want to edit.
-3. Select the **...** three dots and click **Edit mapping**. If you want to delete your mapping, select **Delete**.
-
-## Reverse ETL for Engage Premier Subscriptions
-[Engage Premier Subscriptions users](/docs/engage/user-subscriptions/) can use Reverse ETL to sync subscription data from warehouses to destinations.
-
-To get started with using Reverse ETL for subscriptions:
-1. Navigate to **Engage > Audiences** and select the **Profile explorer** tab.
-2. Click **Manage subscription statuses** and select **Update subscription statuses**.
-3. Select **Sync with RETL** as the menthod to update your subscription statuses.
-4. Click **Configure**.
-5. In the Reverse ETL catalog, select the Reverse ETL source you want to use.
-6. Set up the source. Refer to the [add a source](#step-1-add-a-source) section for more details on how to set up the source.
-7. Add the **Segment Profiles** destination as your Reverse ETL destination. Refer to [add a destination](#step-3-add-a-destination) for more details to set up the destination.
-8. Once your destination is set, go to the **Mappings** tab of your destination and click **Add Mapping**.
-9. Select the model you want to use and then select **Send Subscriptions**.
-10. Click **Create Mapping**.
-11. Follow the steps in the [create mappings](#step-4-create-mappings) section to set your mappings.
-
-
-## Record diffing
-Reverse ETL computes the incremental changes to your data directly within your data warehouse. The Unique Identifier column is used to detect the data changes, such as new, updated, and deleted records.
-
-> info "Delete Records Payload"
-> The only value passed for deleted records is its unique ID which can be accessed as `__segment_id`.
-
-In order for Segment to compute the data changes within your warehouse, Segment needs to have both read and write permissions to the warehouse schema table. At a high level, the extract process requires read permissions for the query being executed. Segment keeps track of changes to the query results through tables that Segment manages in a dedicated schema (for example, `_segment_reverse_etl`), which requires some write permissions.
-
-> warning ""
-> There may be cost implications to having Segment query your warehouse tables.
-
-## Segment Connections destination
-If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
-
-The Segment Connections destination enables you to mold data extracted from your warehouse in [Segment Spec](/docs/connections/spec/) API calls that are then processed by [Segment’s HTTP Tracking API](/docs/connections/sources/catalog/libraries/server/http-api/). The requests hit Segment’s servers, and then Segment routes your data to any destination you want. Get started with the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/).
-
-> warning ""
-> The Segment Connections destination sends data to Segment’s Tracking API, which has cost implications. New users count as new MTUs and each call counts as an API call. For information on how Segment calculates MTUs and API calls, please see [MTUs, Throughput and Billing](/docs/guides/usage-and-billing/mtus-and-throughput/).
-
-## Supported object and arrays
-
-When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](#step-4-create-mappings) may require data to be in the form of an [object](#object-mapping) or [array](#array-mapping).
-
-### Object mapping
-You can send data to a mapping field that requires object data. An example of object mapping is an `Order completed` model with a `Products` column that’s in object format.
-
-Example:
-
- {
- "product": {
- "id": 0001,
- "color": "pink",
- "name": "tshirt",
- "revenue": 20,
- "inventory": 500
- }
- }
-
-To send data to a mapping field that requires object data, you can choose between these two options:
-
-Option | Details
------- | --------
-Customize object | This enables you to manually set up the mapping fields with any data from the model. If the model contains some object data, you can select properties within the object to set up the mappings as well.
-Select object | This enables you to send all nested properties within an object. The model needs to provide data in the format of the object.
-
-> success ""
-> Certain object mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your object don't match with the destination properties, the data won't send. Segment recommends you to use **Customize Object** to ensure your mapping is successful.
-
-
-### Array mapping
-To send data to a mapping field that requires array data, the model must provide data in the format of an array of objects. An example is an `Order completed` model with a `Product purchased` column that’s in an array format.
-
-Example:
-
-
- [
- {
- "currency": "USD",
- "price": 40,
- "productName": "jacket",
- "purchaseTime": "2021-12-17 23:43:47.102",
- "quantity": 1
- },
- {
- "currency": "USD",
- "price": 5,
- "productName": "socks",
- "quantity": 2
- }
- ]
-
-
-To send data to a mapping field that requires array data, you can choose between these two options:
-
-Option | Details
------- | --------
-Customize array | This enables you to select the specific nested properties to send to the destination.
-Select array | This enables you to send all nested properties within the array.
-
-> success ""
-> Certain array mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your array don't match the destination properties, the data won't send. Segment recommends you to use the **Customize array** option to ensure your mapping is successful.
-
-Objects in an array don't need to have the same properties. If a user selects a missing property in the input object for a mapping field, the output object will miss the property.
-
-## Limits
-To provide consistent performance and reliability at scale, Segment enforces default use and rate limits for Reverse ETL.
-
-### Usage limits
-Reverse ETL usage limits are measured based on the number of records processed to each destination – this includes both successful and failed records. For example, if you processed 50k records to Braze and 50k records to Mixpanel, then your total Reverse ETL usage is 100k records.
-
-Processed records represents the number of records Segment attempts to send to each destination. Keep in mind that not all processed records are successfully delivered, for example, such as when the destination experiences an issue.
-
-Your plan determines how many Reverse ETL records you can process in one monthly billing cycle. When your limit is reached before the end of your billing period, your syncs will pause and then resume on your next billing cycle. To see how many records you’ve processed using Reverse ETL, navigate to **Settings > Usage & billing** and select the **Reverse ETL** tab.
-
-Plan | Number of Reverse ETL records you can process to destinations per month | How to increase your number of Reverse ETL records
----- | --------------------------------------------------------------------------- | ---------------------------------------------------
-Free | 500K | Upgrade to the Teams plan in the Segment app by navigating to **Settings > Usage & billing**.
-Teams | 1 million | Contact your sales representative to upgrade your plan to Business.
-Business | 50 x the number of [MTUs](/docs/guides/usage-and-billing/mtus-and-throughput/#what-is-an-mtu)
or .25 x the number of monthly API calls | Contact your sales rep to upgrade your plan.
-
-If you have a non-standard or high volume usage plan, you may have unique Reverse ETL limits or custom pricing.
-
-### Configuration limits
-
-Name | Details | Limit
---------- | ------- | ------
-Model query length | The maximum length for the model SQL query. | 131,072 characters
-Model identifier column name length | The maximum length for the ID column name. | 191 characters
-Model timestamp column name length | The maximum length for the timestamp column name. | 191 characters
-Sync frequency | The shortest possible duration Segment allows between syncs. | 15 minutes
-
-### Extract limits
-The extract phase is the time spent connecting to your database, executing the model query, updating internal state tables and staging the extracted records for loading.
-
-Name | Details | Limit
------ | ------- | ------
-Record count | The maximum number of records a single sync will process. Note: This is the number of records extracted from the warehouse not the limit for the number of records loaded to the destination (for example, new/update/deleted). | 30 million records
-Column count | The maximum number of columns a single sync will process. | 512 columns
-Column name length | The maximum length of a record column. | 128 characters
-Record JSON size | The maximum size for a record when converted to JSON (some of this limit is used by Segment). | 512 KiB
-Column JSON size | The maximum size of any single column value. | 128 KiB
-
-## FAQs
-
-#### Why do my sync results show *No records extracted* when I select *Updated records* after I enable the mapping?
-It's expected that when you select **Updated records** the records do not change after the first sync. During the first sync, the reverse ETL system calculates a snapshot of all the results and creates records in the `_segment_reverse_etl` schema. All the records are considered as *Added records* instead of *Updated records* at this time. The records can only meet the *Updated records* condition when the underlying values change after the first sync completes.
-
-#### Does Segment use Transport Layer Security (TLS) for the connection between Snowflake and Segment?
-Segment uses the [gosnowflake library](https://pkg.go.dev/github.com/snowflakedb/gosnowflake#pkg-variables){:target="_blank"} to connect with Snowflake, which internally uses TLS for the HTTP transport.
-
-#### Can I be notified when Reverse ETL syncs fail?
-Yes, you can sign up for Reverse ETL sync notifications.
-
-To receive Reverse ETL sync notifications:
-1. Navigate to **Settings > User Preferences**.
-2. Select **Reverse ETL** In the **Activity Notifications** section.
-3. Enable the toggle for **Reverse ETL Sync Failed**.
-
-In case of consecutive failures, Segment sends notifications for every sync failure. Segment doesn't send notifications for partial failures.
-
-#### Can I have multiple queries in the Query Builder?
-No. In Reverse ETL, Segment executes queries in a [common table expression](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#with_clause){:target="_blank”}, which can only bind the results from **one single** subquery. If there are multiple semicolons `;` in the query, they'll be treated as several subqueries (even if the second part is only an inline comment) and cause syntax errors.
+* Connect Google Sheets to a view in the warehouse for other business teams to have access to up-to-date reports.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/mappings.md b/src/connections/reverse-etl/mappings.md
new file mode 100644
index 0000000000..05c4d96867
--- /dev/null
+++ b/src/connections/reverse-etl/mappings.md
@@ -0,0 +1,83 @@
+---
+title: Reverse ETL Mappings
+beta: false
+---
+
+### Managing syncs
+
+### Supported object and arrays
+
+When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](#step-4-create-mappings) may require data to be in the form of an [object](#object-mapping) or [array](#array-mapping).
+
+### Object mapping
+You can send data to a mapping field that requires object data. An example of object mapping is an `Order completed` model with a `Products` column that’s in object format.
+
+Example:
+
+ {
+ "product": {
+ "id": 0001,
+ "color": "pink",
+ "name": "tshirt",
+ "revenue": 20,
+ "inventory": 500
+ }
+ }
+
+To send data to a mapping field that requires object data, you can choose between these two options:
+
+Option | Details
+------ | --------
+Customize object | This enables you to manually set up the mapping fields with any data from the model. If the model contains some object data, you can select properties within the object to set up the mappings as well.
+Select object | This enables you to send all nested properties within an object. The model needs to provide data in the format of the object.
+
+> success ""
+> Certain object mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your object don't match with the destination properties, the data won't send. Segment recommends you to use **Customize Object** to ensure your mapping is successful.
+
+
+### Array mapping
+To send data to a mapping field that requires array data, the model must provide data in the format of an array of objects. An example is an `Order completed` model with a `Product purchased` column that’s in an array format.
+
+Example:
+
+
+ [
+ {
+ "currency": "USD",
+ "price": 40,
+ "productName": "jacket",
+ "purchaseTime": "2021-12-17 23:43:47.102",
+ "quantity": 1
+ },
+ {
+ "currency": "USD",
+ "price": 5,
+ "productName": "socks",
+ "quantity": 2
+ }
+ ]
+
+
+To send data to a mapping field that requires array data, you can choose between these two options:
+
+Option | Details
+------ | --------
+Customize array | This enables you to select the specific nested properties to send to the destination.
+Select array | This enables you to send all nested properties within the array.
+
+> success ""
+> Certain array mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your array don't match the destination properties, the data won't send. Segment recommends you to use the **Customize array** option to ensure your mapping is successful.
+
+Objects in an array don't need to have the same properties. If a user selects a missing property in the input object for a mapping field, the output object will miss the property.
+
+#### Reset syncs
+You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model.
+
+To reset a sync:
+1. Select the three dots next to **Sync now**.
+2. Select **Reset sync**.
+3. Select the checkbox that you understand what happens when a sync is reset.
+4. Click **Reset sync**.
+
+#### Replays
+You can choose to replay syncs. To replay a specific sync, contact [friends@segment.com](mailto:friends@segment.com). Keep in mind that triggering a replay resyncs all records for a given sync.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/observability.md b/src/connections/reverse-etl/observability.md
new file mode 100644
index 0000000000..ca40a33008
--- /dev/null
+++ b/src/connections/reverse-etl/observability.md
@@ -0,0 +1,31 @@
+---
+title: Reverse ETL Observability
+beta: false
+---
+
+## Sync history
+Check the status of your data extractions and see details of your syncs. Click into failed records to view additional details on the error, sample payloads to help you debug the issue, and recommended actions.
+
+To check the status of your extractions:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Select the destination you want to view.
+3. Select the mapping you want to view.
+4. Click the sync you want to view to get details of the sync. You can view:
+ * The status of the sync.
+ * Details of how long it took for the sync to complete.
+ * How many total records were extracted, as well as a breakdown of the number of records added, updated, and deleted.
+ * The load results - how many successful records were synced as well as how many records were updated, deleted, or are new.
+5. If your sync failed, click the failed reason to get more details on the error and view sample payloads to help troubleshoot the issue.
+
+## Email alerts
+You can opt in to receive email alerts regarding notifications for Reverse ETL.
+
+To subscribe to email alerts:
+1. Navigate to **Settings > User Preferences**.
+2. Select **Reverse ETL** in the **Activity Notifications** section.
+3. Click the toggle on for the notifications you want to receive. You can choose from:
+
+ Notification | Details
+ ------ | -------
+ Reverse ETL Sync Failed | Set toggle on to receive notification when your Reverse ETL sync fails.
+ Reverse ETL Sync Partial Success | Set toggle on to receive notification when your Reverse ETL sync is partially successful.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/reverse-etl-catalog.md b/src/connections/reverse-etl/reverse-etl-catalog.md
index 2e21d0c5d7..3ed9cbc724 100644
--- a/src/connections/reverse-etl/reverse-etl-catalog.md
+++ b/src/connections/reverse-etl/reverse-etl-catalog.md
@@ -1,8 +1,10 @@
---
title: Reverse ETL Catalog
-hidden: true
+beta: false
---
+Reverse ETL supports the entire Segment destination catalog - 30+ Actions destinations are natively supported, Segment Classic destinations are supported through the [Segment Connections](#segment-connections-destination) destination, and Twilio Engage Premier Subscriptions users can use the Segment Profiles destination to sync subscription data from warehouses to destinations.
+
These destinations support [Reverse ETL](/docs/connections/reverse-etl/). If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
@@ -38,3 +40,28 @@ These destinations support [Reverse ETL](/docs/connections/reverse-etl/). If you
+## Segment Connections destination
+If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
+
+The Segment Connections destination enables you to mold data extracted from your warehouse in [Segment Spec](/docs/connections/spec/) API calls that are then processed by [Segment’s HTTP Tracking API](/docs/connections/sources/catalog/libraries/server/http-api/). The requests hit Segment’s servers, and then Segment routes your data to any destination you want. Get started with the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/).
+
+> warning ""
+> The Segment Connections destination sends data to Segment’s Tracking API, which has cost implications. New users count as new MTUs and each call counts as an API call. For information on how Segment calculates MTUs and API calls, please see [MTUs, Throughput and Billing](/docs/guides/usage-and-billing/mtus-and-throughput/).
+
+## Send data to Engage with Segment Profiles
+Engage Premier Subscriptions users can use Reverse ETL to sync subscription data from warehouses to destinations.
+
+To get started with using Reverse ETL for subscriptions:
+1. Navigate to Engage > Audiences and select the Profile explorer tab.
+2. Click Manage subscription statuses and select Update subscription statuses.
+3. Select Sync with RETL as the method to update your subscription statuses.
+4. Click Configure.
+5. In the Reverse ETL catalog, select the Reverse ETL source you want to use.
+6. Set up the source. Refer to the add a source section for more details on how to set up the source.
+7. Add the Segment Profiles destination as your Reverse ETL destination. Refer to add a destination for more details to set up the destination.
+8. Once your destination is set, go to the Mappings tab of your destination and click Add Mapping.
+9. Select the model you want to use and then select Send Subscriptions.
+10. Click Create Mapping.
+11. Follow the steps in the Create Mappings section to set your mappings.
+
+
\ No newline at end of file
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md
index 73e4aceeb4..750a193405 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md
@@ -72,5 +72,5 @@ To set up Azure as your Reverse ETL source:
9. Click **Test Connection** to see if the connection works. If the connection fails, make sure you have the right permissions and credentials, then try again.
10. Click **Add source** if the test connection is successful.
-After you've successfully added your Azure source, [add a model](/docs/connections/reverse-etl/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
+After you've successfully added your Azure source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
index e557bf6740..294c289a16 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
@@ -48,3 +48,5 @@ Permission | Details
`bigquery.jobs.create` | This allows Segment to execute queries on any datasets or tables your model query references, and also allows Segment to manage tables used for tracking.
The `bigquery.datasets.*` permissions can be scoped only to the `__segment_reverse_etl` dataset.
+
+After you've successfully added your BigQuery source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
index 58a927f49c..c53fea5342 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
@@ -60,4 +60,4 @@ To set up Databricks as your Reverse ETL source:
> Segment previously supported token-based authentication, but now uses OAuth (M2M) authentication at the recommendation of Databricks.
> If you previously set up your source using token-based authentication, Segment will continue to support it. If you want to create a new source or update the connection settings of an existing source, Segment only supports [OAuth machine-to-machine (M2M) authentication](https://docs.databricks.com/en/dev-tools/auth/oauth-m2m.html){:target="_blank"}.
-Once you've succesfully added your Databricks source, [add a model](/docs/connections/reverse-etl/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
+Once you've successfully added your Databricks source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
index 9a06ce4383..9f2a229fed 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
@@ -36,3 +36,5 @@ To set up Postgres with Reverse ETL:
* Give the `segment` user read permissions for any resources (databases, schemas, tables) the query needs to access.
* Give the `segment` user write permissions for the Segment managed schema (`__SEGMENT_REVERSE_ETL`), which keeps track of changes to the query results.
+
+After you've successfully added your Postgres source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
index 527d347286..8214ed0be2 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
@@ -32,3 +32,5 @@ If you are able to run the query in the Query Builder, but the sync fails with t
```ts
SELECT id FROM .
```
+
+After you've successfully added your Redshift source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
index 52d7d12042..5fb8203af4 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
@@ -59,4 +59,12 @@ Follow the instructions below to set up the Segment Snowflake connector. Segment
-- role access
GRANT ROLE segment_reverse_etl TO USER segment_reverse_etl_user;
```
-7. Follow the steps listed in the [Add a Source](/docs/connections/reverse-etl#step-1-add-a-source) section to finish adding Snowflake as a source.
+7. Add the account information for your source.
+5. Click **Test Connection** to test to see if the connection works.
+6. Click **Add source** if the test connection is successful.
+
+
+
+Learn more about the Snowflake Account ID [here](https://docs.snowflake.com/en/user-guide/admin-account-identifier.html){:target="_blank"}.
+
+After you've successfully added your Snowflake source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md
new file mode 100644
index 0000000000..db5d8fc9c0
--- /dev/null
+++ b/src/connections/reverse-etl/setup.md
@@ -0,0 +1,149 @@
+---
+title: Set up Reverse ETL
+beta: false
+---
+
+There are four components to Reverse ETL: Sources, Models, Destinations, and Mappings.
+
+
+
+Follow these 4 steps to set up Reverse ETL:
+1. [Add a source](#step-1-add-a-source)
+2. [Add a model](#step-2-add-a-model)
+3. [Add a destination](#step-3-add-a-destination)
+4. [Create mappings](#step-4-create-mappings)
+
+## Step 1: Add a source
+A source is where your data originates from. Traditionally in Segment, a [source](/docs/connections/sources/#what-is-a-source) is a website, server library, mobile SDK, or cloud application which can send data into Segment. In Reverse ETL, your data warehouse is the source.
+
+> warning ""
+> You need to be a user that has both read and write access to the warehouse.
+
+To add your warehouse as a source:
+
+1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab in the Segment app.
+2. Click **+ Add Reverse ETL source**.
+3. Select the source you want to add.
+4. Follow the corresponding setup guide for your Reverse ETL source.
+
+
+
+
+ {% assign warehouses = site.data.catalog.warehouse.items | sort: "display_name" %}
+ {% for warehouse in warehouses %}
+ {% if warehouse.categories contains "RETL" %}
+
+ {% endif %}
+ {% endfor %}
+
+
+
+
+
+After you add your data warehouse as a source, you can [add a model](#step-2-add-a-model) to your source.
+
+## Step 2: Add a model
+Models are SQL queries that define sets of data you want to synchronize to your Reverse ETL destinations. After you add your source, you can add a model.
+
+To add your first model:
+1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab. Select your source and click **Add Model**.
+2. Click **SQL Editor** as your modeling method. (Segment will add more modeling methods in the future.)
+3. Enter the SQL query that’ll define your model. Your model is used to map data to your Reverse ETL destinations.
+4. Choose a column to use as the unique identifier for each record in the **Unique Identifier column** field.
+ * The Unique Identifier should be a column with unique values per record to ensure checkpointing works as expected. It can potentially be a primary key. This column is used to detect new, updated, and deleted records.
+5. Click **Preview** to see a preview of the results of your SQL query. The data from the preview is extracted from the first 10 records of your warehouse.
+ * Segment caches preview queries and result sets in the UI, and stores the preview cache at the source level. If you make two queries for the same source, Segment returns identical preview results. However, during the next synchronization, the latest data will be sent to the connected destinations.
+6. Click **Next**.
+7. Enter your **Model Name**.
+8. Click **Create Model**.
+
+To add multiple models to your source, repeat steps 1-8 above.
+
+### Edit your model
+
+To edit your model:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Select the source and the model you want to edit.
+3. On the overview tab, click **Edit** to edit your query.
+4. Click the **Settings** tab to edit the model name or change the schedule settings.
+
+## Step 3: Add a destination
+Once you’ve added a model, you need to add a destination. In Reverse ETL, destinations are the business tools or apps you use that Segment syncs the data from your warehouse to.
+
+Reverse ETL supports 30+ destinations: see all destinations listed in the [Reverse ETL catalog](/docs/connections/reverse-etl/reverse-etl-catalog/). If the destination you want to send data to is not listed in the Reverse ETL catalog, use the [Segment Connections Destination](#segment-connections-destination) to send data from your Reverse ETL warehouse to your destination.
+
+Engage users can use the [Segment Profiles Destination](/docs/connections/destinations/catalog/actions-segment-profiles/) to send data from their warehouse to their Reverse ETL destinations.
+
+> info "Separate endpoints and credentials required to set up third party destinations"
+> Before you begin setting up your destinations, note that you might be required to have credentials for and
+
+To add your first destination:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Click **Add Reverse ETL destination**.
+3. Select the destination you want to connect to and click **Configure**.
+4. Select the Reverse ETL source you want to connect the destination to.
+5. Enter the **Destination name** and click **Create Destination**.
+6. Enter the required information on the **Settings** tab of the destination.
+7. Navigate to the destination settings tab and enable the destination. If the destination is disabled, then Segment won't be able to start sync.
+
+## Step 4: Create mappings
+After you’ve added a destination, you can create mappings from your warehouse to the destination. Mappings enable you to map the data you extract from your warehouse to the fields in your destination.
+
+To create a mapping:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Select the destination that you want to create a mapping for.
+3. Click **Add Mapping**.
+4. Select the model to sync from.
+5. Select the **Action** you want to sync and click **Next**.
+ * Actions determine the information sent to the destination. The list of Actions will be unique to each destination.
+6. Add the mapping's name. The initial name will default to the Action's name (for example, 'Track Event') but is completely customizable. It will allow you to identify the mapping amongst others.
+7. In the **Select record to map and send** section, select which records to send to your destination after Segment completes extracting data based on your model. You can choose from:
+ * Added records
+ * Updated records
+ * Added or updated records
+ * Deleted records
+8. Select a test record to preview the fields that you can map to your destination in the **Add test record** field.
+9. Select the Schedule type for the times you want the model’s data to be extracted from your warehouse. You can choose from:
+ * **Interval**: Extractions perform based on a selected time cycle.
+ * **Day and time**: Extractions perform at specific times on selected days of the week.
+10. Select how often you want the schedule to sync in **Schedule configuration**.
+ * For an **Interval** schedule type, you can choose from: 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 6 hours, 8 hours, 12 hours, 1 day.
+ * 15 minutes is considered real-time for warehouse syncs
+ * For a **Day and time** schedule type, you can choose the day(s) you’d like the schedule to sync as well as the time.
+ * You can only choose to start the extraction at the top of the hour.
+ * Scheduling multiple extractions to start at the same time inside the same data warehouse causes extraction errors.
+11. Define how to map the record columns from your model to your destination in the **Select Mappings** section.
+ * You map the fields that come from your source, to fields that the destination expects to find. Fields on the destination side depend on the type of action selected.
+ * If you're setting up a destination action, depending on the destination, some mapping fields may require data to be in the form of an object or array. See the [supported objects and arrays for mapping](#supported-object-and-arrays).
+12. *(Optional)* Send a test record to verify the mappings correctly send to your destination.
+13. Click **Create Mapping**.
+14. Select the destination you’d like to enable on the **My Destinations** page under **Reverse ETL > Destinations**.
+15. Turn the toggle on for the **Mapping Status**. Events that match the trigger condition in the mapping will be sent to the destination.
+ * If you disable the mapping state to the destination, events that match the trigger condition in the mapping won’t be sent to the destination.
+
+To add multiple mappings from your warehouse to your destination, repeat steps 1-13 above.
+
+### Edit your mapping
+
+To edit your mapping:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Select the destination and the mapping you want to edit.
+3. Select the **...** three dots and click **Edit mapping**. If you want to delete your mapping, select **Delete**.
+
+## Using Reverse ETL
+After you've set up your source, model, destination, and mappings for Reverse ETL, your data will extract and sync to your destination(s) right away if you chose an interval schedule. If you set your data to extract at a specific day and time, the extraction will take place then.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
new file mode 100644
index 0000000000..999ea4acb2
--- /dev/null
+++ b/src/connections/reverse-etl/system.md
@@ -0,0 +1,53 @@
+---
+title: Reverse ETL System
+beta: false
+---
+
+## Record diffing
+Reverse ETL computes the incremental changes to your data directly within your data warehouse. The Unique Identifier column is used to detect the data changes, such as new, updated, and deleted records.
+
+> info "Delete Records Payload"
+> The only value passed for deleted records is its unique ID which can be accessed as `__segment_id`.
+
+In order for Segment to compute the data changes within your warehouse, Segment needs to have both read and write permissions to the warehouse schema table. At a high level, the extract process requires read permissions for the query being executed. Segment keeps track of changes to the query results through tables that Segment manages in a dedicated schema (for example, `_segment_reverse_etl`), which requires some write permissions.
+
+> warning ""
+> There may be cost implications to having Segment query your warehouse tables.
+
+## Limits
+To provide consistent performance and reliability at scale, Segment enforces default use and rate limits for Reverse ETL.
+
+### Usage limits
+Reverse ETL usage limits are measured based on the number of records processed to each destination – this includes both successful and failed records. For example, if you processed 50k records to Braze and 50k records to Mixpanel, then your total Reverse ETL usage is 100k records.
+
+Processed records represents the number of records Segment attempts to send to each destination. Keep in mind that not all processed records are successfully delivered, for example, such as when the destination experiences an issue.
+
+Your plan determines how many Reverse ETL records you can process in one monthly billing cycle. When your limit is reached before the end of your billing period, your syncs will pause and then resume on your next billing cycle. To see how many records you’ve processed using Reverse ETL, navigate to **Settings > Usage & billing** and select the **Reverse ETL** tab.
+
+Plan | Number of Reverse ETL records you can process to destinations per month | How to increase your number of Reverse ETL records
+---- | --------------------------------------------------------------------------- | ---------------------------------------------------
+Free | 500K | Upgrade to the Teams plan in the Segment app by navigating to **Settings > Usage & billing**.
+Teams | 1 million | Contact your sales representative to upgrade your plan to Business.
+Business | 50 x the number of [MTUs](/docs/guides/usage-and-billing/mtus-and-throughput/#what-is-an-mtu)
or .25 x the number of monthly API calls | Contact your sales rep to upgrade your plan.
+
+If you have a non-standard or high volume usage plan, you may have unique Reverse ETL limits or custom pricing.
+
+### Configuration limits
+
+Name | Details | Limit
+--------- | ------- | ------
+Model query length | The maximum length for the model SQL query. | 131,072 characters
+Model identifier column name length | The maximum length for the ID column name. | 191 characters
+Model timestamp column name length | The maximum length for the timestamp column name. | 191 characters
+Sync frequency | The shortest possible duration Segment allows between syncs. | 15 minutes
+
+### Extract limits
+The extract phase is the time spent connecting to your database, executing the model query, updating internal state tables and staging the extracted records for loading.
+
+Name | Details | Limit
+----- | ------- | ------
+Record count | The maximum number of records a single sync will process. Note: This is the number of records extracted from the warehouse not the limit for the number of records loaded to the destination (for example, new/update/deleted). | 30 million records
+Column count | The maximum number of columns a single sync will process. | 512 columns
+Column name length | The maximum length of a record column. | 128 characters
+Record JSON size | The maximum size for a record when converted to JSON (some of this limit is used by Segment). | 512 KiB
+Column JSON size | The maximum size of any single column value. | 128 KiB
\ No newline at end of file
From c43cbc9e47544f890791c3b57b768f70f205443c Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Wed, 15 May 2024 15:02:09 -0400
Subject: [PATCH 02/37] make this truly a landing page
---
src/connections/reverse-etl/index.md | 61 +++++++++++++++++++++++++---
1 file changed, 56 insertions(+), 5 deletions(-)
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index 999eb01dac..4908e350d1 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -7,12 +7,63 @@ redirect_from:
Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse using a query you provide and syncs the data to your third party destinations. For example, with Reverse ETL, you can sync records from Snowflake to Mixpanel. Reverse ETL supports event and object data. This includes customer profile data, subscriptions, product tables, shopping cart tables, and more.
+
+

+
+## Get started with Reverse ETL
+
+
+ {% include components/reference-button.html
+ href="/docs/connections/reverse-etl/setup"
+ icon="getting-started.svg"
+ title="Set up Reverse ETL"
+ description="Add a Reverse ETL source, set up a model, add a destination, and create mappings to transfer data from your warehouse to your downstream destinations."
+ %}
+
+ {% include components/reference-button.html
+ href="/docs/connections/reverse-etl/reverse-etl-catalog"
+ icon="reverse-etl.svg"
+ title="Destination catalog"
+ description="View the 30+ destinations with native Reverse ETL support and learn how you can use the Segment Connections and Segment Profiles to send data to the rest of the Segment catalog."
+ %}
+
+
## Example use cases
Use Reverse ETL when you want to:
-* Sync audiences and other data built in the warehouse to Braze, Hubspot, or Salesforce Marketing Cloud for personalized marketing campaigns.
-* Sync enriched data to Mixpanel for a more complete view of the customer, or enrich Segment Unify with data from the warehouse.
-* Send data in the warehouse back into Segment as events that can be activated in all supported destinations, including Twilio Engage.
-* Pass offline or enriched data to conversion APIs like Facebook, Google Ads, TikTok, or Snapchat.
-* Connect Google Sheets to a view in the warehouse for other business teams to have access to up-to-date reports.
\ No newline at end of file
+* **Enable your marketing teams**: Sync audiences and other data built in the warehouse to Braze, Hubspot, or Salesforce Marketing Cloud for personalized marketing campaigns.
+* **Enrich your customer profiles**: Sync enriched data to Mixpanel for a more complete view of the customer, or enrich Segment Unify with data from the warehouse.
+* **Activate data in Twilio Engage**: Send data in the warehouse back into Segment as events that can be activated in all supported destinations, including Twilio Engage.
+* **Strengthen your conversion events**: Pass offline or enriched data to conversion APIs like Facebook, Google Ads, TikTok, or Snapchat.
+* **Empower business teams**: Connect Google Sheets to a view in the warehouse for other business teams to have access to up-to-date reports.
+
+## Learn more
+
+Learn more about the observability tools you can use to manage your syncs, the mappings that power the flow of data to your downstream destinations, and the system that powers Segment's Reverse ETL product.
+
+
+
+ {% include components/reference-button.html
+ href="/docs/connections/reverse-etl/observability"
+ title="Observability"
+ description="The tools that Segment has available"
+ %}
+
+
+
+ {% include components/reference-button.html
+ href="/docs/connections/reverse-etl/mappings"
+ title="Mappings"
+ description="Learn more about Reverse ETL mappings"
+ %}
+
+
+
+ {% include components/reference-button.html
+ href="/docs/connections-reverse-etl/system"
+ title="System"
+ description="Reverse ETL System reverse ETL system"
+ %}
+
+
\ No newline at end of file
From 5795cf3a899087da5b71b6b3033626d9cc792dbd Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Thu, 16 May 2024 13:41:23 -0400
Subject: [PATCH 03/37] polish
---
src/_data/sidenav/main.yml | 8 ++++++
src/connections/reverse-etl/index.md | 30 +++++++++-----------
src/connections/reverse-etl/mappings.md | 12 ++++----
src/connections/reverse-etl/observability.md | 2 ++
src/connections/reverse-etl/system.md | 2 ++
5 files changed, 33 insertions(+), 21 deletions(-)
diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml
index b3248c9e3b..a2f61f21c1 100644
--- a/src/_data/sidenav/main.yml
+++ b/src/_data/sidenav/main.yml
@@ -182,6 +182,14 @@ sections:
section:
- path: /connections/reverse-etl
title: Reverse ETL Overview
+ - path: /connections/reverse-etl/setup
+ title: Set up Reverse ETL
+ - path: /connections/reverse-etl/observability
+ title: Observability
+ - path: /connections/reverse-etl/mappings
+ title: Reverse ETL Mappings
+ - path: /connections/reverse-etl/system
+ title: Reverse ETL System
- path: /connections/reverse-etl/reverse-etl-catalog
title: Reverse ETL Catalog
- section_title: Reverse ETL Source Setup Guides
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index 4908e350d1..f7bd4c63b6 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -5,11 +5,17 @@ redirect_from:
- '/reverse-etl/'
---
-Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse using a query you provide and syncs the data to your third party destinations. For example, with Reverse ETL, you can sync records from Snowflake to Mixpanel. Reverse ETL supports event and object data. This includes customer profile data, subscriptions, product tables, shopping cart tables, and more.
+Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse using a query you provide and syncs the data to your third party destinations.
-
+Use Reverse ETL when you want to:
+* **Enable your marketing teams**: Sync audiences and other data built in the warehouse to Braze, Hubspot, or Salesforce Marketing Cloud for personalized marketing campaigns.
+* **Enrich your customer profiles**: Sync enriched data to Mixpanel for a more complete view of the customer, or enrich Segment Unify with data from the warehouse.
+* **Activate data in Twilio Engage**: Send data in the warehouse back into Segment as events that can be activated in all supported destinations, including Twilio Engage.
+* **Strengthen your conversion events**: Pass offline or enriched data to conversion APIs like Facebook, Google Ads, TikTok, or Snapchat.
+* **Empower business teams**: Connect Google Sheets to a view in the warehouse for other business teams to have access to up-to-date reports.
-
+> info "Reverse ETL supports event and object data"
+> Event and object data includes customer profile data, subscriptions, product tables, shopping cart tables, and more.
## Get started with Reverse ETL
@@ -30,24 +36,16 @@ Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse using
%}
-## Example use cases
-Use Reverse ETL when you want to:
-* **Enable your marketing teams**: Sync audiences and other data built in the warehouse to Braze, Hubspot, or Salesforce Marketing Cloud for personalized marketing campaigns.
-* **Enrich your customer profiles**: Sync enriched data to Mixpanel for a more complete view of the customer, or enrich Segment Unify with data from the warehouse.
-* **Activate data in Twilio Engage**: Send data in the warehouse back into Segment as events that can be activated in all supported destinations, including Twilio Engage.
-* **Strengthen your conversion events**: Pass offline or enriched data to conversion APIs like Facebook, Google Ads, TikTok, or Snapchat.
-* **Empower business teams**: Connect Google Sheets to a view in the warehouse for other business teams to have access to up-to-date reports.
-
## Learn more
-Learn more about the observability tools you can use to manage your syncs, the mappings that power the flow of data to your downstream destinations, and the system that powers Segment's Reverse ETL product.
+Learn more about the the system that powers Reverse ETL, the mappings that power the flow of data to your downstream destinations, and observability tools you can use to manage your syncs.
{% include components/reference-button.html
href="/docs/connections/reverse-etl/observability"
title="Observability"
- description="The tools that Segment has available"
+ description="View the state of your Reverse ETL syncs and get alerts when things go wrong"
%}
@@ -55,15 +53,15 @@ Learn more about the observability tools you can use to manage your syncs, the m
{% include components/reference-button.html
href="/docs/connections/reverse-etl/mappings"
title="Mappings"
- description="Learn more about Reverse ETL mappings"
+ description="Supported objects/arrays and ways to manage your syncs"
%}
{% include components/reference-button.html
- href="/docs/connections-reverse-etl/system"
+ href="/docs/connections/reverse-etl/system"
title="System"
- description="Reverse ETL System reverse ETL system"
+ description="Technical details about how Reverse ETL works"
%}
\ No newline at end of file
diff --git a/src/connections/reverse-etl/mappings.md b/src/connections/reverse-etl/mappings.md
index 05c4d96867..c77659e134 100644
--- a/src/connections/reverse-etl/mappings.md
+++ b/src/connections/reverse-etl/mappings.md
@@ -1,11 +1,11 @@
---
-title: Reverse ETL Mappings
+title: Mappings
beta: false
---
-### Managing syncs
+Learn more about supported object and array values in your mappings and how to reset or replay your syncs.
-### Supported object and arrays
+## Supported object and arrays
When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](#step-4-create-mappings) may require data to be in the form of an [object](#object-mapping) or [array](#array-mapping).
@@ -70,7 +70,7 @@ Select array | This enables you to send all nested properties within the array.
Objects in an array don't need to have the same properties. If a user selects a missing property in the input object for a mapping field, the output object will miss the property.
-#### Reset syncs
+## Reset syncs
You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model.
To reset a sync:
@@ -79,5 +79,7 @@ To reset a sync:
3. Select the checkbox that you understand what happens when a sync is reset.
4. Click **Reset sync**.
-#### Replays
+### Automatic retry handling
+
+## Replays
You can choose to replay syncs. To replay a specific sync, contact [friends@segment.com](mailto:friends@segment.com). Keep in mind that triggering a replay resyncs all records for a given sync.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/observability.md b/src/connections/reverse-etl/observability.md
index ca40a33008..85c3b40b9a 100644
--- a/src/connections/reverse-etl/observability.md
+++ b/src/connections/reverse-etl/observability.md
@@ -3,6 +3,8 @@ title: Reverse ETL Observability
beta: false
---
+With the Sync history tab, you can view the status of your data extractions and see details about syncs with your warehouse.
+
## Sync history
Check the status of your data extractions and see details of your syncs. Click into failed records to view additional details on the error, sample payloads to help you debug the issue, and recommended actions.
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index 999ea4acb2..187ae58596 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -3,6 +3,8 @@ title: Reverse ETL System
beta: false
---
+
+
## Record diffing
Reverse ETL computes the incremental changes to your data directly within your data warehouse. The Unique Identifier column is used to detect the data changes, such as new, updated, and deleted records.
From 2b9779bc37c0fde833f69f2f15f602cf47448792 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Fri, 17 May 2024 17:50:37 -0400
Subject: [PATCH 04/37] rmv "catalog"
---
src/connections/reverse-etl/setup.md | 37 ++++++----------------------
1 file changed, 7 insertions(+), 30 deletions(-)
diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md
index db5d8fc9c0..df7c7ad6fc 100644
--- a/src/connections/reverse-etl/setup.md
+++ b/src/connections/reverse-etl/setup.md
@@ -24,36 +24,13 @@ To add your warehouse as a source:
1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab in the Segment app.
2. Click **+ Add Reverse ETL source**.
3. Select the source you want to add.
-4. Follow the corresponding setup guide for your Reverse ETL source.
-
-
-
-
- {% assign warehouses = site.data.catalog.warehouse.items | sort: "display_name" %}
- {% for warehouse in warehouses %}
- {% if warehouse.categories contains "RETL" %}
-
- {% endif %}
- {% endfor %}
-
-
-
-
+4. Follow the corresponding setup guide for your Reverse ETL source:
+ - [Azure Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup)
+ - [BigQuery Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup)
+ - [Databricks Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup)
+ - [Postgres Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup)
+ - [Redshift Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup)
+ - [Snowflake Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup)
After you add your data warehouse as a source, you can [add a model](#step-2-add-a-model) to your source.
From 58e7991a0a74faa1b7084b7352fe7ec35d1852bc Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 20 May 2024 15:11:16 -0400
Subject: [PATCH 05/37] finish intros to some of the ref pages
---
src/connections/reverse-etl/faq.md | 6 +++---
src/connections/reverse-etl/index.md | 12 ++++++------
src/connections/reverse-etl/mappings.md | 6 ++----
src/connections/reverse-etl/observability.md | 2 +-
src/connections/reverse-etl/reverse-etl-catalog.md | 2 +-
src/connections/reverse-etl/system.md | 2 +-
6 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/src/connections/reverse-etl/faq.md b/src/connections/reverse-etl/faq.md
index 6e792a4f8c..bcaef54ef2 100644
--- a/src/connections/reverse-etl/faq.md
+++ b/src/connections/reverse-etl/faq.md
@@ -3,12 +3,12 @@ title: Reverse ETL FAQ
beta: false
---
-## Troubleshooting
+Get answers to some frequently asked Reverse ETL questions.
-### Why do my sync results show *No records extracted* when I select *Updated records* after I enable the mapping?
+## Why do my sync results show *No records extracted* when I select *Updated records* after I enable the mapping?
It's expected that when you select **Updated records** the records do not change after the first sync. During the first sync, the reverse ETL system calculates a snapshot of all the results and creates records in the `_segment_reverse_etl` schema. All the records are considered as *Added records* instead of *Updated records* at this time. The records can only meet the *Updated records* condition when the underlying values change after the first sync completes.
-### Can I be notified when Reverse ETL syncs fail?
+## Can I be notified when Reverse ETL syncs fail?
Yes, you can sign up for Reverse ETL sync notifications.
To receive Reverse ETL sync notifications:
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index f7bd4c63b6..f1a71d77f1 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -44,24 +44,24 @@ Learn more about the the system that powers Reverse ETL, the mappings that power
{% include components/reference-button.html
href="/docs/connections/reverse-etl/observability"
- title="Observability"
- description="View the state of your Reverse ETL syncs and get alerts when things go wrong"
+ title="Reverse ETL Observability"
+ description="View the state of your Reverse ETL syncs and get alerted when things go wrong"
%}
{% include components/reference-button.html
href="/docs/connections/reverse-etl/mappings"
- title="Mappings"
- description="Supported objects/arrays and ways to manage your syncs"
+ title="Reverse ETL Mappings"
+ description="Supported objects and arrays along with ways to manage your syncs"
%}
{% include components/reference-button.html
href="/docs/connections/reverse-etl/system"
- title="System"
- description="Technical details about how Reverse ETL works"
+ title="Reverse ETL System"
+ description="Reference material about system limits and how Segment detects data changes"
%}
\ No newline at end of file
diff --git a/src/connections/reverse-etl/mappings.md b/src/connections/reverse-etl/mappings.md
index c77659e134..b3c7654275 100644
--- a/src/connections/reverse-etl/mappings.md
+++ b/src/connections/reverse-etl/mappings.md
@@ -1,9 +1,9 @@
---
-title: Mappings
+title: Reverse ETL Mappings
beta: false
---
-Learn more about supported object and array values in your mappings and how to reset or replay your syncs.
+Learn which mapping fields support object and array values in your mappings and how you can reset or replay your syncs.
## Supported object and arrays
@@ -79,7 +79,5 @@ To reset a sync:
3. Select the checkbox that you understand what happens when a sync is reset.
4. Click **Reset sync**.
-### Automatic retry handling
-
## Replays
You can choose to replay syncs. To replay a specific sync, contact [friends@segment.com](mailto:friends@segment.com). Keep in mind that triggering a replay resyncs all records for a given sync.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/observability.md b/src/connections/reverse-etl/observability.md
index 85c3b40b9a..95206daac8 100644
--- a/src/connections/reverse-etl/observability.md
+++ b/src/connections/reverse-etl/observability.md
@@ -3,7 +3,7 @@ title: Reverse ETL Observability
beta: false
---
-With the Sync history tab, you can view the status of your data extractions and see details about syncs with your warehouse.
+Use Segment's sync history and email alert features to get better insights about the status of your Reverse ETL syncs.
## Sync history
Check the status of your data extractions and see details of your syncs. Click into failed records to view additional details on the error, sample payloads to help you debug the issue, and recommended actions.
diff --git a/src/connections/reverse-etl/reverse-etl-catalog.md b/src/connections/reverse-etl/reverse-etl-catalog.md
index 3ed9cbc724..010330e95e 100644
--- a/src/connections/reverse-etl/reverse-etl-catalog.md
+++ b/src/connections/reverse-etl/reverse-etl-catalog.md
@@ -3,7 +3,7 @@ title: Reverse ETL Catalog
beta: false
---
-Reverse ETL supports the entire Segment destination catalog - 30+ Actions destinations are natively supported, Segment Classic destinations are supported through the [Segment Connections](#segment-connections-destination) destination, and Twilio Engage Premier Subscriptions users can use the Segment Profiles destination to sync subscription data from warehouses to destinations.
+Reverse ETL supports most of the Segment destination catalog - 30+ Actions destinations are natively supported, Segment Classic destinations are supported through the [Segment Connections](#segment-connections-destination) destination, and Twilio Engage Premier Subscriptions users can use the Segment Profiles destination to sync subscription data from warehouses to destinations.
These destinations support [Reverse ETL](/docs/connections/reverse-etl/). If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index 187ae58596..0693d0a4bb 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -3,7 +3,7 @@ title: Reverse ETL System
beta: false
---
-
+View reference information about how Segment detects data changes in your warehouse and the rate and usage limits associated with Reverse ETL.
## Record diffing
Reverse ETL computes the incremental changes to your data directly within your data warehouse. The Unique Identifier column is used to detect the data changes, such as new, updated, and deleted records.
From 32938a44a8795c18b8e0ccf716c6607e558d550d Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 20 May 2024 15:18:17 -0400
Subject: [PATCH 06/37] rmv RETL from warehouse yml file
---
src/_data/catalog/warehouse.yml | 6 ------
1 file changed, 6 deletions(-)
diff --git a/src/_data/catalog/warehouse.yml b/src/_data/catalog/warehouse.yml
index cd914735ca..dad11ce6d9 100644
--- a/src/_data/catalog/warehouse.yml
+++ b/src/_data/catalog/warehouse.yml
@@ -53,7 +53,6 @@ items:
url: 'https://cdn.filepicker.io/api/file/EUJvt69Q7qMqCvGrVtiu'
categories:
- Warehouses
- - RETL
- display_name: BigQuery
slug: bigquery
name: catalog/warehouses/bigquery
@@ -72,7 +71,6 @@ items:
url: 'https://cdn.filepicker.io/api/file/Vk6iFlMvQeynbg30ZEtt'
categories:
- Warehouses
- - RETL
- display_name: Databricks
slug: databricks
name: catalog/warehouses/databricks
@@ -91,7 +89,6 @@ items:
url: ''
categories:
- Warehouses
- - RETL
- display_name: Google Cloud Storage
slug: google-cloud-storage
name: catalog/warehouses/google-cloud-storage
@@ -146,7 +143,6 @@ items:
url: ''
categories:
- Warehouses
- - RETL
- display_name: Redshift
slug: redshift
name: catalog/warehouses/redshift
@@ -165,7 +161,6 @@ items:
url: ''
categories:
- Warehouses
- - RETL
- display_name: Segment Data Lakes
slug: data-lakes
name: catalog/warehouse/data-lakes
@@ -202,7 +197,6 @@ items:
url: 'https://cdn.filepicker.io/api/file/OBhrGoCRKaSyvAhDX3fw'
categories:
- Warehouses
- - RETL
settings:
- name: bucket
From f823ef3d9bc3a0a60d7d491c93a1cb1b6b6615b1 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 20 May 2024 15:24:42 -0400
Subject: [PATCH 07/37] parity w other items [netlify-build]
---
src/_data/sidenav/main.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml
index a2f61f21c1..0e52843a0c 100644
--- a/src/_data/sidenav/main.yml
+++ b/src/_data/sidenav/main.yml
@@ -184,10 +184,10 @@ sections:
title: Reverse ETL Overview
- path: /connections/reverse-etl/setup
title: Set up Reverse ETL
- - path: /connections/reverse-etl/observability
- title: Observability
- path: /connections/reverse-etl/mappings
title: Reverse ETL Mappings
+ - path: /connections/reverse-etl/observability
+ title: Reverse ETL Observability
- path: /connections/reverse-etl/system
title: Reverse ETL System
- path: /connections/reverse-etl/reverse-etl-catalog
From 6e3f3cad070f113b0809a6a4b8e3288f62668540 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 20 May 2024 15:35:18 -0400
Subject: [PATCH 08/37] [netlify-build]
---
src/connections/reverse-etl/mappings.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/reverse-etl/mappings.md b/src/connections/reverse-etl/mappings.md
index b3c7654275..22d6c2d5e5 100644
--- a/src/connections/reverse-etl/mappings.md
+++ b/src/connections/reverse-etl/mappings.md
@@ -80,4 +80,4 @@ To reset a sync:
4. Click **Reset sync**.
## Replays
-You can choose to replay syncs. To replay a specific sync, contact [friends@segment.com](mailto:friends@segment.com). Keep in mind that triggering a replay resyncs all records for a given sync.
\ No newline at end of file
+You can choose to replay syncs. To replay a specific sync, contact [friends@segment.com](mailto:friends@segment.com). Keep in mind that triggering a replay resyncs all records for a given sync.
From 0be9f21326051afbf828d7586649eafb33d00888 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 20 May 2024 15:56:52 -0400
Subject: [PATCH 09/37] [netlify-build]
---
src/connections/reverse-etl/index.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index 08f3a088dd..4216582685 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -45,7 +45,7 @@ Learn more about the the system that powers Reverse ETL, the mappings that power
{% include components/reference-button.html
href="/docs/connections/reverse-etl/observability"
title="Reverse ETL Observability"
- description="View the state of your Reverse ETL syncs and get alerted when things go wrong"
+ description="View the state of your Reverse ETL syncs and get alerted when things go wrong."
%}
@@ -53,7 +53,7 @@ Learn more about the the system that powers Reverse ETL, the mappings that power
{% include components/reference-button.html
href="/docs/connections/reverse-etl/mappings"
title="Reverse ETL Mappings"
- description="Supported objects and arrays along with ways to manage your syncs"
+ description="Supported objects and arrays along with ways to manage your syncs."
%}
@@ -61,7 +61,7 @@ Learn more about the the system that powers Reverse ETL, the mappings that power
{% include components/reference-button.html
href="/docs/connections/reverse-etl/system"
title="Reverse ETL System"
- description="Reference material about system limits and how Segment detects data changes"
+ description="Reference material about system limits and how Segment detects data changes."
%}
From ab0104f777ee7a510dc8de3ff98a3e083257865f Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 20 May 2024 18:52:49 -0400
Subject: [PATCH 10/37] google docs grammar qa [netlify-build]
---
src/connections/reverse-etl/index.md | 2 +-
src/connections/reverse-etl/setup.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index 4216582685..c02fb38b62 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -38,7 +38,7 @@ Use Reverse ETL when you want to:
## Learn more
-Learn more about the the system that powers Reverse ETL, the mappings that power the flow of data to your downstream destinations, and observability tools you can use to manage your syncs.
+Learn more about the system that powers Reverse ETL, the mappings that power the flow of data to your downstream destinations, and observability tools you can use to manage your syncs.
diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md
index df7c7ad6fc..7cb91f2af0 100644
--- a/src/connections/reverse-etl/setup.md
+++ b/src/connections/reverse-etl/setup.md
@@ -76,7 +76,7 @@ To add your first destination:
4. Select the Reverse ETL source you want to connect the destination to.
5. Enter the **Destination name** and click **Create Destination**.
6. Enter the required information on the **Settings** tab of the destination.
-7. Navigate to the destination settings tab and enable the destination. If the destination is disabled, then Segment won't be able to start sync.
+7. Navigate to the destination settings tab and enable the destination. If the destination is disabled, then Segment won't be able to start a sync.
## Step 4: Create mappings
After you’ve added a destination, you can create mappings from your warehouse to the destination. Mappings enable you to map the data you extract from your warehouse to the fields in your destination.
From 98115cfc39f7bce6eef72fefb8be2e61d95d0d74 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 21 May 2024 17:13:08 -0400
Subject: [PATCH 11/37] add extensions docs
---
.../bigquery-setup.md | 3 +++
.../databricks-setup.md | 7 +++----
.../postgres-setup.md | 3 +++
.../redshift-setup.md | 5 ++++-
src/connections/reverse-etl/system.md | 12 ++++++++++++
5 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
index 294c289a16..ec8ac4cca3 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
@@ -30,6 +30,9 @@ To set up the Segment BigQuery connector:
After you've added BigQuery as a source, you can [add a model](/docs/connections/reverse-etl#step-2-add-a-model).
+> info "BigQuery Reverse ETL sources support Segment's dbt extension"
+> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
+
## Constructing your own role or policy
When you construct your own role or policy, Segment needs the following permissions:
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
index c53fea5342..81cf8bfea9 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
@@ -4,11 +4,10 @@ title: Databricks Reverse ETL Setup
Set up Databricks as your Reverse ETL source.
-At a high level, when you set up Databricks for Reverse ETL, the configured service-principal needs read permissions for any resources (databases, schemas, tables) the query needs to access. Segment keeps track of changes to your query results with a managed schema (`__SEGMENT_REVERSE_ETL`), which requires the configured service-principal to allow write permissions for that schema.
-
-> info ""
-> Segment supports only OAuth (M2M) authentication. To generate a client ID and Secret, follow the steps listed in Databricks' [OAuth machine-to-machine (M2M) authentication](https://docs.databricks.com/en/dev-tools/auth/oauth-m2m.html){:target="_blank"} documentation.
+At a high level, when you set up Databricks for Reverse ETL, the configured service-principal needs read permissions for any resources (databases, schemas, tables) the query needs to access. Segment keeps track of changes to your query results with a managed schema (`__SEGMENT_REVERSE_ETL`), which requires the configured service-principal to allow write permissions for that schema. Segment supports only OAuth (M2M) authentication. To generate a client ID and Secret, follow the steps listed in Databricks' [OAuth machine-to-machine (M2M) authentication](https://docs.databricks.com/en/dev-tools/auth/oauth-m2m.html){:target="_blank"} documentation.
+> info "Databricks Reverse ETL sources support Segment's dbt extension"
+> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
## Required permissions
* Make sure the service principal you use to connect to Segment has permissions to use that warehouse. In the Databricks console go to **SQL warehouses** and select the warehouse you're using. Navigate to **Overview > Permissions** and make sure the service principal you use to connect to Segment has *can use* permissions.
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
index 9f2a229fed..5e4dc4b89f 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
@@ -6,6 +6,9 @@ Set up Postgres as your Reverse ETL source.
At a high level, when you set up Postgres for Reverse ETL, the configured user/role needs read permissions for any resources (databases, schemas, tables) the query needs to access. Segment keeps track of changes to your query results with a managed schema (`__SEGMENT_REVERSE_ETL`), which requires the configured user to allow write permissions for that schema.
+> info "Postgres Reverse ETL sources support Segment's dbt extension"
+> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
+
Segment supports the following Postgres database providers:
- Heroku
- RDS
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
index 8214ed0be2..55fbeacf0f 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
@@ -5,7 +5,10 @@ redirect_from:
- '/reverse-etl/redshift-setup/'
---
-Set up Redshift as your Reverse ETL source.
+Set up Redshift as your Reverse ETL source.
+
+> info "Redshift Reverse ETL sources support Segment's dbt extension"
+> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
To set up Redshift with Reverse ETL:
1. Log in to Redshift and select the Redshift cluster you want to connect with Reverse ETL.
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index 0693d0a4bb..fcbc2c5298 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -5,6 +5,18 @@ beta: false
View reference information about how Segment detects data changes in your warehouse and the rate and usage limits associated with Reverse ETL.
+## Extensions
+
+Extensions integrate third-party tools into your existing Segment workspace to help you automate tasks.
+
+> info ""
+> Extensions is currently in public beta and is governed by Segment’s First Access and Beta Preview Terms. During Public Beta, Extensions is available for Team and Developer plans only. Reach out to Segment if you’re on a Business Tier plan and would like to participate in the Public Beta.
+
+Segment has two extensions that you can use to manage your Reverse ETL sources:
+
+- [dbt models and dbt Cloud](/docs/segment-app/extensions/dbt/): Sync your Reverse ETL models with dbt labs models and syncs to help centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
+- [Git sync](/docs/segment-app/extensions/git/): Manage versioning by syncing changes you make to your Reverse ETL sources from your Segment workspace to a Git repository.
+
## Record diffing
Reverse ETL computes the incremental changes to your data directly within your data warehouse. The Unique Identifier column is used to detect the data changes, such as new, updated, and deleted records.
From 17ee7ada221b91d2510372b586366c5aaf2a6bd2 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 21 May 2024 17:14:12 -0400
Subject: [PATCH 12/37] [netlify-build]
---
src/connections/reverse-etl/system.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index fcbc2c5298..2111044e5b 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -64,4 +64,4 @@ Record count | The maximum number of records a single sync will process. Note: T
Column count | The maximum number of columns a single sync will process. | 512 columns
Column name length | The maximum length of a record column. | 128 characters
Record JSON size | The maximum size for a record when converted to JSON (some of this limit is used by Segment). | 512 KiB
-Column JSON size | The maximum size of any single column value. | 128 KiB
\ No newline at end of file
+Column JSON size | The maximum size of any single column value. | 128 KiB
From 682de657818995688ae75a4b567993e17328f121 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 21 May 2024 17:40:22 -0400
Subject: [PATCH 13/37] [netlify-build]
---
.../reverse-etl-source-setup-guides/snowflake-setup.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
index 5fb8203af4..87067b6087 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
@@ -9,6 +9,9 @@ Set up Snowflake as your Reverse ETL source.
At a high level, when you set up Snowflake for Reverse ETL, the configured user/role needs read permissions for any resources (databases, schemas, tables) the query needs to access. Segment keeps track of changes to your query results with a managed schema (`__SEGMENT_REVERSE_ETL`), which requires the configured user to allow write permissions for that schema.
+> info "Snowflake Reverse ETL sources support Segment's dbt extension"
+> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
+
## Set up guide
Follow the instructions below to set up the Segment Snowflake connector. Segment recommends you use the `ACCOUNTADMIN` role to execute all the commands below.
From c68ff00b073cd307fb4cb34da17df4bec0dac0a4 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Wed, 22 May 2024 14:33:28 -0400
Subject: [PATCH 14/37] Apply suggestions from code review
Co-authored-by: Casie Oxford
---
.../reverse-etl-source-setup-guides/databricks-setup.md | 2 +-
src/connections/reverse-etl/system.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
index 81cf8bfea9..c47619e20a 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
@@ -59,4 +59,4 @@ To set up Databricks as your Reverse ETL source:
> Segment previously supported token-based authentication, but now uses OAuth (M2M) authentication at the recommendation of Databricks.
> If you previously set up your source using token-based authentication, Segment will continue to support it. If you want to create a new source or update the connection settings of an existing source, Segment only supports [OAuth machine-to-machine (M2M) authentication](https://docs.databricks.com/en/dev-tools/auth/oauth-m2m.html){:target="_blank"}.
-Once you've successfully added your Databricks source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
+After you've successfully added your Databricks source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index 2111044e5b..06cf5337a8 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -23,7 +23,7 @@ Reverse ETL computes the incremental changes to your data directly within your d
> info "Delete Records Payload"
> The only value passed for deleted records is its unique ID which can be accessed as `__segment_id`.
-In order for Segment to compute the data changes within your warehouse, Segment needs to have both read and write permissions to the warehouse schema table. At a high level, the extract process requires read permissions for the query being executed. Segment keeps track of changes to the query results through tables that Segment manages in a dedicated schema (for example, `_segment_reverse_etl`), which requires some write permissions.
+For Segment to compute the data changes within your warehouse, Segment needs to have both read and write permissions to the warehouse schema table. At a high level, the extract process requires read permissions for the query being executed. Segment keeps track of changes to the query results through tables that Segment manages in a dedicated schema (for example, `_segment_reverse_etl`), which requires some write permissions.
> warning ""
> There may be cost implications to having Segment query your warehouse tables.
From 6028faaa812879a8f517b831b78720c243cf6d25 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Wed, 22 May 2024 14:54:26 -0400
Subject: [PATCH 15/37] Update
src/connections/reverse-etl/reverse-etl-catalog.md
---
.../reverse-etl/reverse-etl-catalog.md | 20 +++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/connections/reverse-etl/reverse-etl-catalog.md b/src/connections/reverse-etl/reverse-etl-catalog.md
index 010330e95e..d0083a07a3 100644
--- a/src/connections/reverse-etl/reverse-etl-catalog.md
+++ b/src/connections/reverse-etl/reverse-etl-catalog.md
@@ -52,16 +52,16 @@ The Segment Connections destination enables you to mold data extracted from your
Engage Premier Subscriptions users can use Reverse ETL to sync subscription data from warehouses to destinations.
To get started with using Reverse ETL for subscriptions:
-1. Navigate to Engage > Audiences and select the Profile explorer tab.
-2. Click Manage subscription statuses and select Update subscription statuses.
-3. Select Sync with RETL as the method to update your subscription statuses.
-4. Click Configure.
+1. Navigate to **Engage > Audiences** and select the **Profile explorer** tab.
+2. Click **Manage subscription statuses** and select **Update subscription statuses**.
+3. Select **Sync with RETL** as the method to update your subscription statuses.
+4. Click **Configure**.
5. In the Reverse ETL catalog, select the Reverse ETL source you want to use.
-6. Set up the source. Refer to the add a source section for more details on how to set up the source.
-7. Add the Segment Profiles destination as your Reverse ETL destination. Refer to add a destination for more details to set up the destination.
-8. Once your destination is set, go to the Mappings tab of your destination and click Add Mapping.
-9. Select the model you want to use and then select Send Subscriptions.
-10. Click Create Mapping.
-11. Follow the steps in the Create Mappings section to set your mappings.
+6. Set up the source. Refer to the [add a source](/docs/connections/reverse-etl/setup/#step-1-add-a-source) section for more details on how to set up the source.
+7. Add the Segment Profiles destination as your Reverse ETL destination. Refer to [add a destination](/docs/connections/reverse-etl/setup/#step-3-add-a-destination) for more details on how to set up the destination.
+8. Once your destination is set, go to the **Mappings** tab of your destination and click **Add Mapping**.
+9. Select the model you want to use and then select **Send Subscriptions**.
+10. Click **Create Mapping**.
+11. Follow the steps in the [Create Mappings](/docs/connections/reverse-etl/setup/#step-4-create-mappings) section to set your mappings.
\ No newline at end of file
From 2e5480956e9129ce2b1e65d369fa0c0f2aa5f86d Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Wed, 22 May 2024 14:55:13 -0400
Subject: [PATCH 16/37] Update src/connections/reverse-etl/system.md
---
src/connections/reverse-etl/system.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index 06cf5337a8..d6814c79db 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -44,7 +44,7 @@ Free | 500K | Upgrade to the Teams plan in the Segment app by navigating to **Se
Teams | 1 million | Contact your sales representative to upgrade your plan to Business.
Business | 50 x the number of [MTUs](/docs/guides/usage-and-billing/mtus-and-throughput/#what-is-an-mtu)
or .25 x the number of monthly API calls | Contact your sales rep to upgrade your plan.
-If you have a non-standard or high volume usage plan, you may have unique Reverse ETL limits or custom pricing.
+If you have a non-standard or high volume usage plan, you may have unique Reverse ETL limits or custom pricing. To see your Reverse ETL limits in the Segment app, select **Settings** then click **Usage & Billing**.
### Configuration limits
From 71fddba2a3ba69c7586f75fa5a5b171900cc9fa5 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Wed, 22 May 2024 15:07:31 -0400
Subject: [PATCH 17/37] Apply suggestions from code review
---
src/connections/reverse-etl/mappings.md | 2 +-
.../reverse-etl-source-setup-guides/bigquery-setup.md | 2 +-
src/connections/reverse-etl/setup.md | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/connections/reverse-etl/mappings.md b/src/connections/reverse-etl/mappings.md
index 22d6c2d5e5..a18e89bbfb 100644
--- a/src/connections/reverse-etl/mappings.md
+++ b/src/connections/reverse-etl/mappings.md
@@ -7,7 +7,7 @@ Learn which mapping fields support object and array values in your mappings and
## Supported object and arrays
-When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](#step-4-create-mappings) may require data to be in the form of an [object](#object-mapping) or [array](#array-mapping).
+When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](/docs/connections/reverse-etl/setup/#step-4-create-mappings) may require data to be in the form of an [object](/docs/connections/reverse-etl/mapping/#object-mapping) or [array](/docs/connections/reverse-etl/mapping/#array-mapping).
### Object mapping
You can send data to a mapping field that requires object data. An example of object mapping is an `Order completed` model with a `Products` column that’s in object format.
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
index ec8ac4cca3..03b876dba3 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
@@ -28,7 +28,7 @@ To set up the Segment BigQuery connector:
20. Click **Test Connection** to test to see if the connection works. If the connection fails, make sure you have the right permissions and credentials and try again.
6. Click **Add source** if the test connection is successful.
-After you've added BigQuery as a source, you can [add a model](/docs/connections/reverse-etl#step-2-add-a-model).
+After you've added BigQuery as a source, you can [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model).
> info "BigQuery Reverse ETL sources support Segment's dbt extension"
> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md
index 7cb91f2af0..703ba8f5b0 100644
--- a/src/connections/reverse-etl/setup.md
+++ b/src/connections/reverse-etl/setup.md
@@ -62,7 +62,7 @@ To edit your model:
## Step 3: Add a destination
Once you’ve added a model, you need to add a destination. In Reverse ETL, destinations are the business tools or apps you use that Segment syncs the data from your warehouse to.
-Reverse ETL supports 30+ destinations: see all destinations listed in the [Reverse ETL catalog](/docs/connections/reverse-etl/reverse-etl-catalog/). If the destination you want to send data to is not listed in the Reverse ETL catalog, use the [Segment Connections Destination](#segment-connections-destination) to send data from your Reverse ETL warehouse to your destination.
+Reverse ETL supports 30+ destinations: see all destinations listed in the [Reverse ETL catalog](/docs/connections/reverse-etl/reverse-etl-catalog/). If the destination you want to send data to is not listed in the Reverse ETL catalog, use the [Segment Connections Destination](/docs/connections/reverse-etl/reverse-etl-catalog/#segment-connections-destination) to send data from your Reverse ETL warehouse to your destination.
Engage users can use the [Segment Profiles Destination](/docs/connections/destinations/catalog/actions-segment-profiles/) to send data from their warehouse to their Reverse ETL destinations.
@@ -106,7 +106,7 @@ To create a mapping:
* Scheduling multiple extractions to start at the same time inside the same data warehouse causes extraction errors.
11. Define how to map the record columns from your model to your destination in the **Select Mappings** section.
* You map the fields that come from your source, to fields that the destination expects to find. Fields on the destination side depend on the type of action selected.
- * If you're setting up a destination action, depending on the destination, some mapping fields may require data to be in the form of an object or array. See the [supported objects and arrays for mapping](#supported-object-and-arrays).
+ * If you're setting up a destination action, depending on the destination, some mapping fields may require data to be in the form of an object or array. See the [supported objects and arrays for mapping](/docs/connections/reverse-etl/mapping/#supported-object-and-arrays).
12. *(Optional)* Send a test record to verify the mappings correctly send to your destination.
13. Click **Create Mapping**.
14. Select the destination you’d like to enable on the **My Destinations** page under **Reverse ETL > Destinations**.
From 991013ef5c8051d78b3e39fffee17b095124746d Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Wed, 22 May 2024 15:43:10 -0400
Subject: [PATCH 18/37] Update index.md
---
src/connections/reverse-etl/index.md | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index c02fb38b62..76a2d5982c 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -65,3 +65,21 @@ Learn more about the system that powers Reverse ETL, the mappings that power the
%}
+
+## More Segment resources
+
+
+{% include components/reference-button.html
+ icon="guides.svg"
+ href="https://segment.com/blog/reverse-etl/"
+ title="What is reverse ETL? A complete guide"
+ description="In this blog from Segment, learn how reverse ETL helps businesses activate their data to drive better decision-making and greater operational efficiency."
+%}
+
+{% include components/reference-button.html
+ icon="projects.svg"
+ href="https://segment.com/customers/mongodb/"
+ title="Customer story: MongoDB"
+ description="Learn how MongoDB used Reverse ETL to connect the work of analytics teams to downstream marketing and sales tools to deliver just-in-time communicates that increased customer satisfaction and engagement."
+%}
+
\ No newline at end of file
From ba5d446ba6cf5dfa3235347f1de1ae9f247d6c7c Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Wed, 22 May 2024 17:28:09 -0400
Subject: [PATCH 19/37] fix formatting [netlify-build]
---
src/connections/reverse-etl/index.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index 76a2d5982c..ef48a49d1f 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -68,7 +68,6 @@ Learn more about the system that powers Reverse ETL, the mappings that power the
## More Segment resources
-
{% include components/reference-button.html
icon="guides.svg"
href="https://segment.com/blog/reverse-etl/"
@@ -82,4 +81,3 @@ Learn more about the system that powers Reverse ETL, the mappings that power the
title="Customer story: MongoDB"
description="Learn how MongoDB used Reverse ETL to connect the work of analytics teams to downstream marketing and sales tools to deliver just-in-time communicates that increased customer satisfaction and engagement."
%}
-
\ No newline at end of file
From b7a0c15623634bd710f8f236bd41488b75d30279 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 10 Jun 2024 12:00:59 -0400
Subject: [PATCH 20/37] update w/ new releases [netlify-build]
---
src/connections/reverse-etl/observability.md | 24 ++++++++++++-------
.../postgres-setup.md | 2 +-
.../redshift-setup.md | 2 +-
3 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/src/connections/reverse-etl/observability.md b/src/connections/reverse-etl/observability.md
index 95206daac8..4269f14ab3 100644
--- a/src/connections/reverse-etl/observability.md
+++ b/src/connections/reverse-etl/observability.md
@@ -19,15 +19,23 @@ To check the status of your extractions:
* The load results - how many successful records were synced as well as how many records were updated, deleted, or are new.
5. If your sync failed, click the failed reason to get more details on the error and view sample payloads to help troubleshoot the issue.
-## Email alerts
-You can opt in to receive email alerts regarding notifications for Reverse ETL.
+> info "Segment automatically retries events that were extracted but failed to load"
+> Segment retries events for 14 days following a total or partial sync failure. Before loading the failed records on a subsequent sync, Segment checks for the latest changes in your data to ensure the data loaded into your warehouse isn't stale. If the error causing the load failure is coming from an upstream tool, you can fix the error in the upstream tool to ensure the record loads on the next sync.
-To subscribe to email alerts:
+## Alerting
+You can opt in to receive email, Slack, and in-app alerts about Reverse ETL sync failures and partial successes.
+
+To subscribe to alerts:
1. Navigate to **Settings > User Preferences**.
2. Select **Reverse ETL** in the **Activity Notifications** section.
-3. Click the toggle on for the notifications you want to receive. You can choose from:
+3. Click the Reverse ETL sync status that you'd like to receive notifications for. You can select one or more of the following sync statuses:
+ - **Reverse ETL sync failed**: Receive a notification when your Reverse ETL sync fails.
+ - **Reverse ETL sync partial success**: Receive a notification when your Reverse ETL sync is partially successful.
+4. Select one or more of the following alert options:
+ - **Enable email notifications**: Enter an email address or alias that should receive alerts.
+ - **Enable Slack notifications**: Enter a Webhook URL and Slack channel name.
+ - **Enable in-app notifications**: Select this option to see an in-app notification.
+5. Click **Create alert**.
- Notification | Details
- ------ | -------
- Reverse ETL Sync Failed | Set toggle on to receive notification when your Reverse ETL sync fails.
- Reverse ETL Sync Partial Success | Set toggle on to receive notification when your Reverse ETL sync is partially successful.
\ No newline at end of file
+> info "View email addresses that are signed up to receive alerts"
+> If you opted to receive notifications by email, you can click **View active email addresses** to see the email addresses that are currently signed up to receive notifications.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
index 5e4dc4b89f..04695300ea 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
@@ -33,7 +33,7 @@ To set up Postgres with Reverse ETL:
GRANT CREATE ON DATABASE "" TO "segment";
```
4. Make sure the user has correct access permissions to the database.
-5. Follow the steps listed in the [Add a source](/docs/connections/reverse-etl/#step-1-add-a-source) section to finish adding Postgres as a source.
+5. Follow the steps listed in the [Add a source](/docs/connections/reverse-etl/setup/#step-1-add-a-source) section to finish adding Postgres as a source.
## Extra permissions
* Give the `segment` user read permissions for any resources (databases, schemas, tables) the query needs to access.
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
index 55fbeacf0f..6ae2d4bdc0 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
@@ -22,7 +22,7 @@ To set up Redshift with Reverse ETL:
-- allows the "segment" user to create new schemas on the specified database. (this is the name you chose when provisioning your cluster)
GRANT CREATE ON DATABASE "" TO "segment";
```
-4. Follow the steps listed in the [Add a source](/docs/connections/reverse-etl#step-1-add-a-source) section to finish adding Redshift as your source.
+4. Follow the steps listed in the [Add a source](/docs/connections/reverse-etl/setup/#step-1-add-a-source) section to finish adding Redshift as your source.
## Extra Permissions
Give the `segment` user read permissions for any resources (databases, schemas, tables) the query needs to access.
From e9a18593c42b0d087d61a491c43da7f37af220b2 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 10 Jun 2024 15:57:02 -0400
Subject: [PATCH 21/37] req'd changes [netlify-build]
---
src/_data/sidenav/main.yml | 10 ++-
src/connections/reverse-etl/index.md | 39 +++++------
.../{mappings.md => manage-retl.md} | 69 ++++++++++++++-----
src/connections/reverse-etl/observability.md | 41 -----------
src/connections/reverse-etl/setup.md | 9 ++-
src/connections/reverse-etl/system.md | 12 ----
6 files changed, 82 insertions(+), 98 deletions(-)
rename src/connections/reverse-etl/{mappings.md => manage-retl.md} (51%)
delete mode 100644 src/connections/reverse-etl/observability.md
diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml
index d8fc436968..511d3a2a34 100644
--- a/src/_data/sidenav/main.yml
+++ b/src/_data/sidenav/main.yml
@@ -183,15 +183,13 @@ sections:
- path: /connections/reverse-etl
title: Reverse ETL Overview
- path: /connections/reverse-etl/setup
- title: Set up Reverse ETL
- - path: /connections/reverse-etl/mappings
- title: Reverse ETL Mappings
- - path: /connections/reverse-etl/observability
- title: Reverse ETL Observability
+ title: Set Up Reverse ETL
+ - path: /connections/reverse-etl/manage-retl
+ title: Manage Reverse ETL Syncs
- path: /connections/reverse-etl/system
title: Reverse ETL System
- path: /connections/reverse-etl/reverse-etl-catalog
- title: Reverse ETL Catalog
+ title: Reverse ETL Destination Catalog
- section_title: Reverse ETL Source Setup Guides
slug: connections/reverse-etl/reverse-etl-source-setup-guides
section:
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index ef48a49d1f..e9cf4f0b43 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -9,10 +9,10 @@ Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse using
Use Reverse ETL when you want to:
* **Enable your marketing teams**: Sync audiences and other data built in the warehouse to Braze, Hubspot, or Salesforce Marketing Cloud for personalized marketing campaigns.
-* **Enrich your customer profiles**: Sync enriched data to Mixpanel for a more complete view of the customer, or enrich Segment Unify with data from the warehouse.
-* **Activate data in Twilio Engage**: Send data in the warehouse back into Segment as events that can be activated in all supported destinations, including Twilio Engage.
+* **Enrich your customer profiles**: Sync enriched data to Mixpanel for a more complete view of the customer, or enrich Segment Unify with data from your warehouse.
+* **Activate data in Twilio Engage**: Send data in the warehouse back into Segment as events that can be activated in all supported destinations, including Twilio Engage destinations.
* **Strengthen your conversion events**: Pass offline or enriched data to conversion APIs like Facebook, Google Ads, TikTok, or Snapchat.
-* **Empower business teams**: Connect Google Sheets to a view in the warehouse for other business teams to have access to up-to-date reports.
+* **Empower business teams**: Connect Google Sheets to a view in the warehouse to create up-to-date reports for other business teams.
> info "Reverse ETL supports event and object data"
> Event and object data includes customer profile data, subscriptions, product tables, shopping cart tables, and more.
@@ -29,50 +29,49 @@ Use Reverse ETL when you want to:
%}
{% include components/reference-button.html
- href="/docs/connections/reverse-etl/reverse-etl-catalog"
+ href="/docs/connections/reverse-etl/manage-retl"
icon="reverse-etl.svg"
- title="Destination catalog"
- description="View the 30+ destinations with native Reverse ETL support and learn how you can use the Segment Connections and Segment Profiles to send data to the rest of the Segment catalog."
+ title="Manage Reverse ETL Syncs"
+ description="View your sync history, gain insights into sync statuses, and restart or replay failed or partially successful syncs."
%}
## Learn more
-Learn more about the system that powers Reverse ETL, the mappings that power the flow of data to your downstream destinations, and observability tools you can use to manage your syncs.
-
+Learn more about the system that powers Reverse ETL, check out the supported destinations, and view frequently asked questions.
{% include components/reference-button.html
- href="/docs/connections/reverse-etl/observability"
- title="Reverse ETL Observability"
- description="View the state of your Reverse ETL syncs and get alerted when things go wrong."
+ href="/docs/connections/reverse-etl/system"
+ title="Reverse ETL System"
+ description="Reference material about system limits and how Segment detects data changes."
%}
{% include components/reference-button.html
- href="/docs/connections/reverse-etl/mappings"
- title="Reverse ETL Mappings"
- description="Supported objects and arrays along with ways to manage your syncs."
+ href="/docs/connections/reverse-etl/reverse-etl-catalog"
+ title="Destination catalog"
+ description="View the 30+ destinations with native Reverse ETL support and learn how to send data to the rest of the Segment catalog using Segment Connections."
%}
{% include components/reference-button.html
- href="/docs/connections/reverse-etl/system"
- title="Reverse ETL System"
- description="Reference material about system limits and how Segment detects data changes."
+ href="/docs/connections/reverse-etl/faq"
+ title="Reverse ETL FAQ"
+ description="Frequently asked questions about Reverse ETL."
%}
-## More Segment resources
+## More Reverse ETL resources
{% include components/reference-button.html
icon="guides.svg"
href="https://segment.com/blog/reverse-etl/"
- title="What is reverse ETL? A complete guide"
- description="In this blog from Segment, learn how reverse ETL helps businesses activate their data to drive better decision-making and greater operational efficiency."
+ title="What is Reverse ETL? A complete guide"
+ description="In this blog from Segment, learn how Reverse ETL helps businesses activate their data to drive better decision-making and greater operational efficiency."
%}
{% include components/reference-button.html
diff --git a/src/connections/reverse-etl/mappings.md b/src/connections/reverse-etl/manage-retl.md
similarity index 51%
rename from src/connections/reverse-etl/mappings.md
rename to src/connections/reverse-etl/manage-retl.md
index a18e89bbfb..69717e3c2d 100644
--- a/src/connections/reverse-etl/mappings.md
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -1,13 +1,60 @@
---
-title: Reverse ETL Mappings
-beta: false
+title: Manage Reverse ETL Syncs
+beta: false
---
-Learn which mapping fields support object and array values in your mappings and how you can reset or replay your syncs.
+View your sync history, gain insights into sync statuses, and restart or replay failed or partially successful syncs.
+
+## Sync history
+Check the status of your data extractions and see details of your syncs. Click into failed records to view additional details on the error, sample payloads to help you debug the issue, and recommended actions.
+
+To check the status of your extractions:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Select the destination you want to view.
+3. Select the mapping you want to view.
+4. Click the sync you want to view to get details of the sync. You can view:
+ * The status of the sync.
+ * Details of how long it took for the sync to complete.
+ * How many total records were extracted, as well as a breakdown of the number of records added, updated, and deleted.
+ * The load results - how many successful records were synced as well as how many records were updated, deleted, or are new.
+5. If your sync failed, click the failed reason to get more details on the error and view sample payloads to help troubleshoot the issue.
+
+> info "Segment automatically retries events that were extracted but failed to load"
+> Segment retries events for 14 days following a total or partial sync failure. Before loading the failed records on a subsequent sync, Segment checks for the latest changes in your data to ensure the data loaded into your warehouse isn't stale. If the error causing the load failure is coming from an upstream tool, you can fix the error in the upstream tool to ensure the record loads on the next sync.
+
+## Reset syncs
+You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model.
+
+To reset a sync:
+1. Select the three dots next to **Sync now**.
+2. Select **Reset sync**.
+3. Select the checkbox that you understand what happens when a sync is reset.
+4. Click **Reset sync**.
+
+## Replays
+You can choose to replay syncs. To replay a specific sync, contact [friends@segment.com](mailto:friends@segment.com). Keep in mind that triggering a replay resyncs all records for a given sync.
+
+## Alerting
+You can opt in to receive email, Slack, and in-app alerts about Reverse ETL sync failures and partial successes.
+
+To subscribe to alerts:
+1. Navigate to **Settings > User Preferences**.
+2. Select **Reverse ETL** in the **Activity Notifications** section.
+3. Click the Reverse ETL sync status that you'd like to receive notifications for. You can select one or more of the following sync statuses:
+ - **Reverse ETL sync failed**: Receive a notification when your Reverse ETL sync fails.
+ - **Reverse ETL sync partial success**: Receive a notification when your Reverse ETL sync is partially successful.
+4. Select one or more of the following alert options:
+ - **Enable email notifications**: Enter an email address or alias that should receive alerts.
+ - **Enable Slack notifications**: Enter a Webhook URL and Slack channel name.
+ - **Enable in-app notifications**: Select this option to see an in-app notification.
+5. Click **Create alert**.
+
+> info "View email addresses that are signed up to receive alerts"
+> If you opted to receive notifications by email, you can click **View active email addresses** to see the email addresses that are currently signed up to receive notifications.
## Supported object and arrays
-When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](/docs/connections/reverse-etl/setup/#step-4-create-mappings) may require data to be in the form of an [object](/docs/connections/reverse-etl/mapping/#object-mapping) or [array](/docs/connections/reverse-etl/mapping/#array-mapping).
+When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](/docs/connections/reverse-etl/setup/#step-4-create-mappings) may require data to be in the form of an [object](/docs/connections/reverse-etl/manage-retl/#object-mapping) or [array](/docs/connections/reverse-etl/manage-retl/#array-mapping).
### Object mapping
You can send data to a mapping field that requires object data. An example of object mapping is an `Order completed` model with a `Products` column that’s in object format.
@@ -68,16 +115,4 @@ Select array | This enables you to send all nested properties within the array.
> success ""
> Certain array mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your array don't match the destination properties, the data won't send. Segment recommends you to use the **Customize array** option to ensure your mapping is successful.
-Objects in an array don't need to have the same properties. If a user selects a missing property in the input object for a mapping field, the output object will miss the property.
-
-## Reset syncs
-You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model.
-
-To reset a sync:
-1. Select the three dots next to **Sync now**.
-2. Select **Reset sync**.
-3. Select the checkbox that you understand what happens when a sync is reset.
-4. Click **Reset sync**.
-
-## Replays
-You can choose to replay syncs. To replay a specific sync, contact [friends@segment.com](mailto:friends@segment.com). Keep in mind that triggering a replay resyncs all records for a given sync.
+Objects in an array don't need to have the same properties. If a user selects a missing property in the input object for a mapping field, the output object will miss the property.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/observability.md b/src/connections/reverse-etl/observability.md
deleted file mode 100644
index 4269f14ab3..0000000000
--- a/src/connections/reverse-etl/observability.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: Reverse ETL Observability
-beta: false
----
-
-Use Segment's sync history and email alert features to get better insights about the status of your Reverse ETL syncs.
-
-## Sync history
-Check the status of your data extractions and see details of your syncs. Click into failed records to view additional details on the error, sample payloads to help you debug the issue, and recommended actions.
-
-To check the status of your extractions:
-1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
-2. Select the destination you want to view.
-3. Select the mapping you want to view.
-4. Click the sync you want to view to get details of the sync. You can view:
- * The status of the sync.
- * Details of how long it took for the sync to complete.
- * How many total records were extracted, as well as a breakdown of the number of records added, updated, and deleted.
- * The load results - how many successful records were synced as well as how many records were updated, deleted, or are new.
-5. If your sync failed, click the failed reason to get more details on the error and view sample payloads to help troubleshoot the issue.
-
-> info "Segment automatically retries events that were extracted but failed to load"
-> Segment retries events for 14 days following a total or partial sync failure. Before loading the failed records on a subsequent sync, Segment checks for the latest changes in your data to ensure the data loaded into your warehouse isn't stale. If the error causing the load failure is coming from an upstream tool, you can fix the error in the upstream tool to ensure the record loads on the next sync.
-
-## Alerting
-You can opt in to receive email, Slack, and in-app alerts about Reverse ETL sync failures and partial successes.
-
-To subscribe to alerts:
-1. Navigate to **Settings > User Preferences**.
-2. Select **Reverse ETL** in the **Activity Notifications** section.
-3. Click the Reverse ETL sync status that you'd like to receive notifications for. You can select one or more of the following sync statuses:
- - **Reverse ETL sync failed**: Receive a notification when your Reverse ETL sync fails.
- - **Reverse ETL sync partial success**: Receive a notification when your Reverse ETL sync is partially successful.
-4. Select one or more of the following alert options:
- - **Enable email notifications**: Enter an email address or alias that should receive alerts.
- - **Enable Slack notifications**: Enter a Webhook URL and Slack channel name.
- - **Enable in-app notifications**: Select this option to see an in-app notification.
-5. Click **Create alert**.
-
-> info "View email addresses that are signed up to receive alerts"
-> If you opted to receive notifications by email, you can click **View active email addresses** to see the email addresses that are currently signed up to receive notifications.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md
index 703ba8f5b0..4ac231cb2e 100644
--- a/src/connections/reverse-etl/setup.md
+++ b/src/connections/reverse-etl/setup.md
@@ -37,6 +37,11 @@ After you add your data warehouse as a source, you can [add a model](#step-2-add
## Step 2: Add a model
Models are SQL queries that define sets of data you want to synchronize to your Reverse ETL destinations. After you add your source, you can add a model.
+> info "Use Segment's dbt extension to centralize model management and versioning"
+> Users who set up a BigQuery, Databricks, Postgres, Redshift, or Snowflake source can use Segment's [dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
+>
+> Extensions is currently in public beta and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. During Public Beta, Extensions is available for Team and Developer plans only. [Reach out to Segment](mailto:friends@segment.com) if you're on a Business Tier plan and would like to participate in the Public Beta.
+
To add your first model:
1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab. Select your source and click **Add Model**.
2. Click **SQL Editor** as your modeling method. (Segment will add more modeling methods in the future.)
@@ -67,7 +72,7 @@ Reverse ETL supports 30+ destinations: see all destinations listed in the [Rever
Engage users can use the [Segment Profiles Destination](/docs/connections/destinations/catalog/actions-segment-profiles/) to send data from their warehouse to their Reverse ETL destinations.
> info "Separate endpoints and credentials required to set up third party destinations"
-> Before you begin setting up your destinations, note that you might be required to have credentials for and
+> Before you begin setting up your destinations, note that each destination has different authentication requirements. See the documentation for your intended destination for more details.
To add your first destination:
1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
@@ -106,7 +111,7 @@ To create a mapping:
* Scheduling multiple extractions to start at the same time inside the same data warehouse causes extraction errors.
11. Define how to map the record columns from your model to your destination in the **Select Mappings** section.
* You map the fields that come from your source, to fields that the destination expects to find. Fields on the destination side depend on the type of action selected.
- * If you're setting up a destination action, depending on the destination, some mapping fields may require data to be in the form of an object or array. See the [supported objects and arrays for mapping](/docs/connections/reverse-etl/mapping/#supported-object-and-arrays).
+ * If you're setting up a destination action, depending on the destination, some mapping fields may require data to be in the form of an object or array. See the [supported objects and arrays for mapping](/docs/connections/reverse-etl/manage-retl/#supported-object-and-arrays).
12. *(Optional)* Send a test record to verify the mappings correctly send to your destination.
13. Click **Create Mapping**.
14. Select the destination you’d like to enable on the **My Destinations** page under **Reverse ETL > Destinations**.
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index d6814c79db..6784e1b104 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -5,18 +5,6 @@ beta: false
View reference information about how Segment detects data changes in your warehouse and the rate and usage limits associated with Reverse ETL.
-## Extensions
-
-Extensions integrate third-party tools into your existing Segment workspace to help you automate tasks.
-
-> info ""
-> Extensions is currently in public beta and is governed by Segment’s First Access and Beta Preview Terms. During Public Beta, Extensions is available for Team and Developer plans only. Reach out to Segment if you’re on a Business Tier plan and would like to participate in the Public Beta.
-
-Segment has two extensions that you can use to manage your Reverse ETL sources:
-
-- [dbt models and dbt Cloud](/docs/segment-app/extensions/dbt/): Sync your Reverse ETL models with dbt labs models and syncs to help centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
-- [Git sync](/docs/segment-app/extensions/git/): Manage versioning by syncing changes you make to your Reverse ETL sources from your Segment workspace to a Git repository.
-
## Record diffing
Reverse ETL computes the incremental changes to your data directly within your data warehouse. The Unique Identifier column is used to detect the data changes, such as new, updated, and deleted records.
From e6c653723c6efbd398380354558b343da61ed0f4 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 10 Jun 2024 15:59:47 -0400
Subject: [PATCH 22/37] again! [netlify build]
---
src/connections/reverse-etl/index.md | 1 +
src/connections/reverse-etl/reverse-etl-catalog.md | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index e9cf4f0b43..3f86d5d8d8 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -1,6 +1,7 @@
---
title: Reverse ETL
beta: false
+hide_toc: true
redirect_from:
- '/reverse-etl/'
---
diff --git a/src/connections/reverse-etl/reverse-etl-catalog.md b/src/connections/reverse-etl/reverse-etl-catalog.md
index d0083a07a3..aca648c831 100644
--- a/src/connections/reverse-etl/reverse-etl-catalog.md
+++ b/src/connections/reverse-etl/reverse-etl-catalog.md
@@ -3,9 +3,9 @@ title: Reverse ETL Catalog
beta: false
---
-Reverse ETL supports most of the Segment destination catalog - 30+ Actions destinations are natively supported, Segment Classic destinations are supported through the [Segment Connections](#segment-connections-destination) destination, and Twilio Engage Premier Subscriptions users can use the Segment Profiles destination to sync subscription data from warehouses to destinations.
+Reverse ETL supports most of the Segment destination catalog - 30+ Actions destinations are natively supported, Segment Classic destinations are supported through the [Segment Connections](#segment-connections-destination) destination, and Twilio Engage Premier Subscriptions users can use the Segment Profiles destination to enrich warehouse data.
-These destinations support [Reverse ETL](/docs/connections/reverse-etl/). If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
+The following destinations natively support [Reverse ETL](/docs/connections/reverse-etl/). If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
From 737a0c1c90099446dfdbec8fe1418f30a91bd167 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 10 Jun 2024 16:02:22 -0400
Subject: [PATCH 23/37] [netlify-build]
---
src/connections/reverse-etl/index.md | 2 +-
src/connections/reverse-etl/manage-retl.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index 3f86d5d8d8..6d7b2956ca 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -39,7 +39,7 @@ Use Reverse ETL when you want to:
## Learn more
-Learn more about the system that powers Reverse ETL, check out the supported destinations, and view frequently asked questions.
+Learn more about the system that powers Reverse ETL, supported destinations, and frequently asked questions.
{% include components/reference-button.html
diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md
index 69717e3c2d..978425b7ce 100644
--- a/src/connections/reverse-etl/manage-retl.md
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -49,7 +49,7 @@ To subscribe to alerts:
- **Enable in-app notifications**: Select this option to see an in-app notification.
5. Click **Create alert**.
-> info "View email addresses that are signed up to receive alerts"
+> success ""
> If you opted to receive notifications by email, you can click **View active email addresses** to see the email addresses that are currently signed up to receive notifications.
## Supported object and arrays
From 6490e325b498b115497b107e787bfa37cb264255 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 10 Jun 2024 16:48:40 -0400
Subject: [PATCH 24/37] [netlify-build]
---
src/connections/reverse-etl/setup.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md
index 4ac231cb2e..62c80df215 100644
--- a/src/connections/reverse-etl/setup.md
+++ b/src/connections/reverse-etl/setup.md
@@ -69,7 +69,7 @@ Once you’ve added a model, you need to add a destination. In Reverse ETL, dest
Reverse ETL supports 30+ destinations: see all destinations listed in the [Reverse ETL catalog](/docs/connections/reverse-etl/reverse-etl-catalog/). If the destination you want to send data to is not listed in the Reverse ETL catalog, use the [Segment Connections Destination](/docs/connections/reverse-etl/reverse-etl-catalog/#segment-connections-destination) to send data from your Reverse ETL warehouse to your destination.
-Engage users can use the [Segment Profiles Destination](/docs/connections/destinations/catalog/actions-segment-profiles/) to send data from their warehouse to their Reverse ETL destinations.
+Engage users can use the [Segment Profiles Destination](/docs/connections/destinations/catalog/actions-segment-profiles/) to create and update [Profiles](/docs/unify/) that can then be accessed through [Profile API](/docs/unify/profile-api/) and activated within [Twilio Engage](/docs/engage).
> info "Separate endpoints and credentials required to set up third party destinations"
> Before you begin setting up your destinations, note that each destination has different authentication requirements. See the documentation for your intended destination for more details.
From 184c1b173536f68938a31cd9609a4b497552cd93 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Mon, 10 Jun 2024 18:46:15 -0400
Subject: [PATCH 25/37] [netlify-build]
---
src/connections/reverse-etl/reverse-etl-catalog.md | 5 ++++-
.../reverse-etl-source-setup-guides/azure-setup.md | 2 +-
src/connections/reverse-etl/system.md | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/connections/reverse-etl/reverse-etl-catalog.md b/src/connections/reverse-etl/reverse-etl-catalog.md
index aca648c831..7135eadb08 100644
--- a/src/connections/reverse-etl/reverse-etl-catalog.md
+++ b/src/connections/reverse-etl/reverse-etl-catalog.md
@@ -3,7 +3,10 @@ title: Reverse ETL Catalog
beta: false
---
-Reverse ETL supports most of the Segment destination catalog - 30+ Actions destinations are natively supported, Segment Classic destinations are supported through the [Segment Connections](#segment-connections-destination) destination, and Twilio Engage Premier Subscriptions users can use the Segment Profiles destination to enrich warehouse data.
+Reverse ETL supports the entire Segment destination catalog - 30+ Actions destinations are natively supported and all other destinations are supported through the [Segment Connections](#segment-connections-destination) destination.
+
+> success ""
+> Twilio Engage Premier Subscriptions users can use the [Segment Profiles](/docs/connections/destinations/catalog/actions-segment-profiles/) destination to enrich their warehouse data.
The following destinations natively support [Reverse ETL](/docs/connections/reverse-etl/). If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md
index 750a193405..8f77dd075c 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md
@@ -61,7 +61,7 @@ To set up Azure as your Reverse ETL source:
5. Navigate to **Connections > Sources** and select the **Reverse ETL** tab.
6. Click **+ Add Reverse ETL source**.
7. Select **Azure** and click **Add Source**.
-8. Enter the configuration settings for you Azure source based on the information from Step 3.
+8. Enter the configuration settings for your Azure source based on the information from Step 3.
* Hostname:
* Use `xxxxxxx.sql.azuresynapse.net` if you’re connecting to a dedicated SQL pool in Synapse workspace.
* Use `xxxxxxx.database.windows.net` if you’re connecting to a dedicated SQL pool (formerly SQL DW)
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index 6784e1b104..c217245dc6 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -32,7 +32,7 @@ Free | 500K | Upgrade to the Teams plan in the Segment app by navigating to **Se
Teams | 1 million | Contact your sales representative to upgrade your plan to Business.
Business | 50 x the number of [MTUs](/docs/guides/usage-and-billing/mtus-and-throughput/#what-is-an-mtu)
or .25 x the number of monthly API calls | Contact your sales rep to upgrade your plan.
-If you have a non-standard or high volume usage plan, you may have unique Reverse ETL limits or custom pricing. To see your Reverse ETL limits in the Segment app, select **Settings** then click **Usage & Billing**.
+If you have a non-standard or high volume usage plan, you may have unique Reverse ETL limits or custom pricing. To see your Reverse ETL limits in the Segment app, select **Settings > Usage & Billing**.
### Configuration limits
From 8830955f5292c5ef89061daad302a71cf380ab39 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Fri, 2 Aug 2024 17:14:48 -0400
Subject: [PATCH 26/37] add sync overview [netlify-build]
---
src/connections/reverse-etl/manage-retl.md | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md
index 978425b7ce..cc2ba34629 100644
--- a/src/connections/reverse-etl/manage-retl.md
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -5,6 +5,27 @@ beta: false
View your sync history, gain insights into sync statuses, and restart or replay failed or partially successful syncs.
+## Sync overview
+On the Reverse ETL sync overview tab for your destination, you can see information about your recent Reverse ETL syncs at a glance, search for recent syncs, and quickly access the mappings and models that power Reverse ETL.
+
+
+
+You can view the following information about each sync:
+- **Latest sync**: The progress of your latest sync: syncs can either be **In progress**, **Successful**, or **Failed**. Also included is the timestamp of the sync start time.
+- **Mapping**: The named mapping that powered the sync and a hyperlink to the mapping's overview page.
+- **Model**: The name that you gave the SQL query used to withdraw information from your warehouse, with a hyperlink to the model overview page. Below the model name, you can see the warehouse source that Segment extracts information from.
+- **Action**: The Action that your destination uses to map information from your warehouse to your downstream destination.
+- **Mapping status**: The status of your mapping: either **Enabled** or **Disabled**.
+
+You can also filter the sync overview table to return only the syncs that match your criteria.
+
+You can filter for the following sync attributes:
+- **Sync status**: The status of your sync: In progress, Successful, Partially successful, or Failed.
+- **Start time**: Select a predefined time period, or create a custom date range.
+- **Model**: The model connected to your sync.
+- **Destination**: Select one or more of your connected destinations.
+- **Mapping status**: The status of your mapping: either **Enabled** or **Disabled**.
+
## Sync history
Check the status of your data extractions and see details of your syncs. Click into failed records to view additional details on the error, sample payloads to help you debug the issue, and recommended actions.
From 1cb06090920ce6ff7a2f7b4680a3c78cd660d0a6 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 12:50:50 -0400
Subject: [PATCH 27/37] Update src/connections/reverse-etl/system.md
Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com>
---
src/connections/reverse-etl/system.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index c217245dc6..faf35fbe0c 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -20,7 +20,7 @@ For Segment to compute the data changes within your warehouse, Segment needs to
To provide consistent performance and reliability at scale, Segment enforces default use and rate limits for Reverse ETL.
### Usage limits
-Reverse ETL usage limits are measured based on the number of records processed to each destination – this includes both successful and failed records. For example, if you processed 50k records to Braze and 50k records to Mixpanel, then your total Reverse ETL usage is 100k records.
+Reverse ETL usage limits are measured based on the number of records processed to each destination – this includes both successful and failed records. For example, if you processed 50K records to Braze and 50K records to Mixpanel, then your total Reverse ETL usage is 100K records.
Processed records represents the number of records Segment attempts to send to each destination. Keep in mind that not all processed records are successfully delivered, for example, such as when the destination experiences an issue.
From c5de28167a0023aed919bd3d2764f152e27ab624 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 12:51:26 -0400
Subject: [PATCH 28/37] FAQ updates
Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com>
---
src/connections/reverse-etl/faq.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/connections/reverse-etl/faq.md b/src/connections/reverse-etl/faq.md
index bcaef54ef2..55b433e44b 100644
--- a/src/connections/reverse-etl/faq.md
+++ b/src/connections/reverse-etl/faq.md
@@ -6,14 +6,14 @@ beta: false
Get answers to some frequently asked Reverse ETL questions.
## Why do my sync results show *No records extracted* when I select *Updated records* after I enable the mapping?
-It's expected that when you select **Updated records** the records do not change after the first sync. During the first sync, the reverse ETL system calculates a snapshot of all the results and creates records in the `_segment_reverse_etl` schema. All the records are considered as *Added records* instead of *Updated records* at this time. The records can only meet the *Updated records* condition when the underlying values change after the first sync completes.
+It's expected that when you select **Updated records**, the records do not change after the first sync. During the first sync, the reverse ETL system calculates a snapshot of all the results and creates records in the `_segment_reverse_etl` schema. All the records are considered as *Added records* instead of *Updated records* at this time. The records can only meet the *Updated records* condition when the underlying values change after the first sync completes.
## Can I be notified when Reverse ETL syncs fail?
Yes, you can sign up for Reverse ETL sync notifications.
To receive Reverse ETL sync notifications:
1. Navigate to **Settings > User Preferences**.
-2. Select **Reverse ETL** In the **Activity Notifications** section.
+2. Select **Reverse ETL** in the **Activity Notifications** section.
3. Enable the toggle for **Reverse ETL Sync Failed**.
In case of consecutive failures, Segment sends notifications for every sync failure. Segment doesn't send notifications for partial failures.
From a82b27f2bff9f8a394c3b74a49b09a9e061026ab Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 12:54:57 -0400
Subject: [PATCH 29/37] Set up RETL page
Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com>
---
src/connections/reverse-etl/setup.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md
index 62c80df215..a2c8e89474 100644
--- a/src/connections/reverse-etl/setup.md
+++ b/src/connections/reverse-etl/setup.md
@@ -110,7 +110,7 @@ To create a mapping:
* You can only choose to start the extraction at the top of the hour.
* Scheduling multiple extractions to start at the same time inside the same data warehouse causes extraction errors.
11. Define how to map the record columns from your model to your destination in the **Select Mappings** section.
- * You map the fields that come from your source, to fields that the destination expects to find. Fields on the destination side depend on the type of action selected.
+ * You map the fields that come from your source to fields that the destination expects to find. Fields on the destination side depend on the type of action selected.
* If you're setting up a destination action, depending on the destination, some mapping fields may require data to be in the form of an object or array. See the [supported objects and arrays for mapping](/docs/connections/reverse-etl/manage-retl/#supported-object-and-arrays).
12. *(Optional)* Send a test record to verify the mappings correctly send to your destination.
13. Click **Create Mapping**.
From 55011d89cdd91f192a6a4bc841b9ee9c9374e509 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 12:55:31 -0400
Subject: [PATCH 30/37] Snowflake setup
---
.../reverse-etl-source-setup-guides/snowflake-setup.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
index a02837ce24..91d3ef85d0 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
@@ -86,6 +86,6 @@ Follow the instructions below to set up the Segment Snowflake connector. Segment
-Learn more about the Snowflake Account ID [here](https://docs.snowflake.com/en/user-guide/admin-account-identifier.html){:target="_blank"}.
+Learn more about the Snowflake Account ID in Snowflake's [Account identifiers](https://docs.snowflake.com/en/user-guide/admin-account-identifier.html){:target="_blank"} documentation.
After you've successfully added your Snowflake source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
\ No newline at end of file
From 587f9d6db31b0173264a80cae53abc1d2f8383be Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 12:56:13 -0400
Subject: [PATCH 31/37] Update
src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
---
.../reverse-etl-source-setup-guides/snowflake-setup.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
index 91d3ef85d0..306cf1f5ca 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
@@ -84,7 +84,6 @@ Follow the instructions below to set up the Segment Snowflake connector. Segment
5. Click **Test Connection** to test to see if the connection works.
6. Click **Add source** if the test connection is successful.
-
Learn more about the Snowflake Account ID in Snowflake's [Account identifiers](https://docs.snowflake.com/en/user-guide/admin-account-identifier.html){:target="_blank"} documentation.
From 7b6b7317791e611cdec95bec8829facd20f3debd Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 12:56:54 -0400
Subject: [PATCH 32/37] Catalog page updates
---
src/connections/reverse-etl/reverse-etl-catalog.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/connections/reverse-etl/reverse-etl-catalog.md b/src/connections/reverse-etl/reverse-etl-catalog.md
index 7135eadb08..0cde14d1e4 100644
--- a/src/connections/reverse-etl/reverse-etl-catalog.md
+++ b/src/connections/reverse-etl/reverse-etl-catalog.md
@@ -66,5 +66,3 @@ To get started with using Reverse ETL for subscriptions:
9. Select the model you want to use and then select **Send Subscriptions**.
10. Click **Create Mapping**.
11. Follow the steps in the [Create Mappings](/docs/connections/reverse-etl/setup/#step-4-create-mappings) section to set your mappings.
-
-
\ No newline at end of file
From 04066078996b9c2ae1bc18ee04d10d4bef3787c6 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 13:02:42 -0400
Subject: [PATCH 33/37] Manage RETL (except for JSON, check box wording)
Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com>
---
src/connections/reverse-etl/manage-retl.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md
index cc2ba34629..ace2f773c0 100644
--- a/src/connections/reverse-etl/manage-retl.md
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -8,7 +8,7 @@ View your sync history, gain insights into sync statuses, and restart or replay
## Sync overview
On the Reverse ETL sync overview tab for your destination, you can see information about your recent Reverse ETL syncs at a glance, search for recent syncs, and quickly access the mappings and models that power Reverse ETL.
-
+
You can view the following information about each sync:
- **Latest sync**: The progress of your latest sync: syncs can either be **In progress**, **Successful**, or **Failed**. Also included is the timestamp of the sync start time.
@@ -66,7 +66,7 @@ To subscribe to alerts:
- **Reverse ETL sync partial success**: Receive a notification when your Reverse ETL sync is partially successful.
4. Select one or more of the following alert options:
- **Enable email notifications**: Enter an email address or alias that should receive alerts.
- - **Enable Slack notifications**: Enter a Webhook URL and Slack channel name.
+ - **Enable Slack notifications**: Enter a webhook URL and Slack channel name.
- **Enable in-app notifications**: Select this option to see an in-app notification.
5. Click **Create alert**.
@@ -75,7 +75,7 @@ To subscribe to alerts:
## Supported object and arrays
-When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](/docs/connections/reverse-etl/setup/#step-4-create-mappings) may require data to be in the form of an [object](/docs/connections/reverse-etl/manage-retl/#object-mapping) or [array](/docs/connections/reverse-etl/manage-retl/#array-mapping).
+When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](/docs/connections/reverse-etl/setup/#step-4-create-mappings) may require data as an [object](/docs/connections/reverse-etl/manage-retl/#object-mapping) or [array](/docs/connections/reverse-etl/manage-retl/#array-mapping).
### Object mapping
You can send data to a mapping field that requires object data. An example of object mapping is an `Order completed` model with a `Products` column that’s in object format.
From 1e01a4ed8cd4d3d341dd7e580e3fa81ddcb86c5f Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 13:23:03 -0400
Subject: [PATCH 34/37] Update src/connections/reverse-etl/manage-retl.md
Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com>
---
src/connections/reverse-etl/manage-retl.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md
index ace2f773c0..a01dcec2cb 100644
--- a/src/connections/reverse-etl/manage-retl.md
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -49,7 +49,7 @@ You can reset your syncs so that your data is synced from the beginning. This me
To reset a sync:
1. Select the three dots next to **Sync now**.
2. Select **Reset sync**.
-3. Select the checkbox that you understand what happens when a sync is reset.
+3. Select **I understand what happens when I reset a sync state**.
4. Click **Reset sync**.
## Replays
From ab644bf007a919e24f04ea2f6659305687ba78f3 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 13:29:40 -0400
Subject: [PATCH 35/37] codeblock formatting
---
src/connections/reverse-etl/manage-retl.md | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md
index ace2f773c0..ebf4aa8c6e 100644
--- a/src/connections/reverse-etl/manage-retl.md
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -81,7 +81,8 @@ When you set up destination actions in Reverse ETL, depending on the destination
You can send data to a mapping field that requires object data. An example of object mapping is an `Order completed` model with a `Products` column that’s in object format.
Example:
-
+
+```json
{
"product": {
"id": 0001,
@@ -91,6 +92,7 @@ Example:
"inventory": 500
}
}
+```
To send data to a mapping field that requires object data, you can choose between these two options:
@@ -108,7 +110,7 @@ To send data to a mapping field that requires array data, the model must provide
Example:
-
+```json
[
{
"currency": "USD",
@@ -124,7 +126,7 @@ Example:
"quantity": 2
}
]
-
+```
To send data to a mapping field that requires array data, you can choose between these two options:
From 7ad54b0825fa652615d78ba53da5304289b926bc Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 13:30:29 -0400
Subject: [PATCH 36/37] Update src/connections/reverse-etl/manage-retl.md
---
src/connections/reverse-etl/manage-retl.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md
index 2dca28c783..3586e09433 100644
--- a/src/connections/reverse-etl/manage-retl.md
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -44,7 +44,7 @@ To check the status of your extractions:
> Segment retries events for 14 days following a total or partial sync failure. Before loading the failed records on a subsequent sync, Segment checks for the latest changes in your data to ensure the data loaded into your warehouse isn't stale. If the error causing the load failure is coming from an upstream tool, you can fix the error in the upstream tool to ensure the record loads on the next sync.
## Reset syncs
-You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model.
+You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model. During the next sync, all records extracted by the model are sent to your destination, not just the records that changed since the last sync.
To reset a sync:
1. Select the three dots next to **Sync now**.
From c85d2bb7f6c3e19648c75c517c1e148d4ec05152 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Tue, 13 Aug 2024 13:30:57 -0400
Subject: [PATCH 37/37] Update src/connections/reverse-etl/manage-retl.md
---
src/connections/reverse-etl/manage-retl.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md
index 3586e09433..c449ac0c4d 100644
--- a/src/connections/reverse-etl/manage-retl.md
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -49,7 +49,7 @@ You can reset your syncs so that your data is synced from the beginning. This me
To reset a sync:
1. Select the three dots next to **Sync now**.
2. Select **Reset sync**.
-3. Select **I understand what happens when I reset a sync state**.
+3. Click **I understand what happens when I reset a sync state**.
4. Click **Reset sync**.
## Replays