diff --git a/src/connections/destinations/catalog/actions-sprig-web/index.md b/src/connections/destinations/catalog/actions-sprig-web/index.md
deleted file mode 100644
index 4d8f507dce..0000000000
--- a/src/connections/destinations/catalog/actions-sprig-web/index.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-# The end name should be similar to `Slack (Actions) Destination`
-title: Sprig (Actions) Destination
-hide-boilerplate: true
-hide-dossier: false
-hidden: true
----
-
-
-
-{% include content/plan-grid.md name="actions" %}
-
-[Sprig (formerly UserLeap)](https://sprig.com/?&utm_source=segmentio&utm_medium=docs_actions&utm_campaign=integration){:target="_blank"} is an in-context user research platform that makes it fast and effortless for product teams to learn from their actual customers in real-time, through microsurveys, concept tests, and video questions.
-
-Sprig maintains this destination. For any issues with the destination, consult [Sprig's documentation](https://docs.sprig.com/docs/segment-web){:target="_blank”} or contact [support@sprig.com](mailto:support@sprig.com).
-
-
-
-
-> success ""
-> **Good to know**: This page is about the [Actions-framework](/docs/connections/destinations/actions/) Sprig Segment destination. There's also a page about the [non-Actions Sprig Cloud (formerly UserLeap) destination](/docs/connections/destinations/catalog/userleap/). Both of these destinations receive data from Segment.
-
-
-
-## Benefits of Sprig (Actions) vs Sprig Classic
-
-Sprig (Actions) provides the following benefits over the classic Sprig destination:
-
-- **Trigger microsurveys**. Because Sprig (Actions) hooks into your browser-based, JavaScript Segment source, it can be used to trigger Sprig microsurveys.
-- **Code-free Sprig installation**. The Sprig (Actions) destination can install the Sprig SDK onto your website, without you having to update any code.
-
-
-
-## Getting started
-
-1. From the Segment web app, click **Catalog**, then click **Destinations**.
-2. Use the navigation on the left to locate and select Sprig (Actions).
-3. Click **Configure Sprig (Actions)**.
-4. Select an existing JavaScript website source to connect to Sprig (Actions).
-5. Find your Environment ID on [Sprig Dashboard > Connect > JavaScript](https://app.sprig.com/connect){:target="_blank"}. Use the Development Environment ID for a testing environment, and the Production Environment ID for your live website environment. When you configure the destination, input the appropriate Environment ID.
-6. Select **Quick Setup** to start with pre-populated subscriptions, or **Customized Setup** to configure each action from scratch. Click **Configure Actions** to complete setup.
-
-
-
-{% include components/actions-fields.html %}
-
-
-## Migration from the classic Sprig destination
-
-To prevent duplicate events being created in Sprig, ensure that for each Segment source, this destination and the Sprig Cloud destination are not both enabled at the same time.
-
-
diff --git a/src/connections/destinations/catalog/actions-stackadapt-cloud/index.md b/src/connections/destinations/catalog/actions-stackadapt-cloud/index.md
index d95a4ecbeb..66018f714a 100644
--- a/src/connections/destinations/catalog/actions-stackadapt-cloud/index.md
+++ b/src/connections/destinations/catalog/actions-stackadapt-cloud/index.md
@@ -3,7 +3,6 @@ title: StackAdapt Destination
hide-boilerplate: true
hide-dossier: true
id: 61d8859be4f795335d5c677c
-hidden: true
redirect_from: '/connections/destinations/catalog/actions-stackadapt/'
---
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index 3088c38153..8c3ba4250e 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -6,14 +6,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 third party destinations.
+Reverse ETL (Extract, Transform, Load) extracts data from a warehouse using a query you provide and syncs this warehouse 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 your warehouse.
+* **Elevate marketing campaigns**: Sync audiences and other data built in the warehouse to multi-channel marketing tools, like Braze, Hubspot, or Salesforce Marketing Cloud, to personalize marketing campaigns.
+* **Enrich your customer profiles**: Sync enriched data to destinations like Mixpanel for a more complete view of the customer, or enrich Segment Profiles 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 to create up-to-date reports for other business teams.
+* **Make warehouse data accessible to business teams**: Connect destinations like Google Sheets to a view in the warehouse to allow business teams to access 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.
@@ -26,14 +26,14 @@ Use Reverse ETL when you want to:
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."
+ description="Set up the infrastructure you need to sync data from your warehouse to your downstream destinations."
%}
{% include components/reference-button.html
href="/docs/connections/reverse-etl/manage-retl"
icon="reverse-etl.svg"
title="Manage Reverse ETL Syncs"
- description="View your sync history, gain insights into sync statuses, and restart or replay failed or partially successful syncs."
+ description="View your sync history, reset your syncs, or subscribe to alerts."
%}
@@ -53,7 +53,7 @@ Learn more about the system that powers Reverse ETL, supported destinations, and
{% include components/reference-button.html
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."
+ description="View the destinations you can connect to your Reverse ETL sources."
%}
@@ -79,6 +79,6 @@ Learn more about the system that powers Reverse ETL, supported destinations, and
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."
+ 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 communications that increased customer satisfaction and engagement."
%}
diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md
index 63f68cd90b..33f6b96a3b 100644
--- a/src/connections/reverse-etl/manage-retl.md
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -3,28 +3,19 @@ title: Manage Reverse ETL Syncs
beta: false
---
-View your sync history, gain insights into sync statuses, and restart or replay failed or partially successful syncs.
+View your sync history, reset your syncs, or subscribe to alerts.
## 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.
+The Reverse ETL sync overview tab, located under **Connections > Destinations**, gives you an overview of your latest Reverse ETL syncs.

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**.
+- **Latest sync**: The status of your latest sync. Syncs can either be **In progress**, **Successful**, or **Failed**.
+- **Mapping**: The named mapping.
+- **Model**: The model that extracts data from your warehouse.
+- **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**.
## 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.
@@ -44,7 +35,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. 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.
+Reverse ETL uses the Unique Identifier column to detect data changes, like new, updated, and deleted records. If you encounter an error, you can reset Segment’s tracking of this column and force Segment to manually add all records from your dataset.
To reset a sync:
1. Select the three dots next to **Sync now**.
@@ -72,70 +63,3 @@ To subscribe to 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
-
-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.
-
-Example:
-
-```json
- {
- "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:
-
-```json
- [
- {
- "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.
diff --git a/src/connections/reverse-etl/reverse-etl-catalog.md b/src/connections/reverse-etl/reverse-etl-catalog.md
index 0cde14d1e4..00309eb16a 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 and all other destinations are supported through the [Segment Connections](#segment-connections-destination) destination.
+Reverse ETL supports the Actions destinations listed in this catalog. Most destinations not listed here 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.
diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md
index 9a1690a438..edd65caaf7 100644
--- a/src/connections/reverse-etl/setup.md
+++ b/src/connections/reverse-etl/setup.md
@@ -40,9 +40,9 @@ Models define sets of data you want to sync to your Reverse ETL destinations. A
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 destination(s).
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, like a primary key. This column is used to detect new, updated, and deleted records.
-5. Click **Preview** to see a preview the first 10 records for the SQL query.
- * 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.
+ * 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.
6. Click **Next**.
7. Enter your **Model Name**.
8. Click **Create Model**.
@@ -53,9 +53,9 @@ Use Segment's dbt extension to centralize model management and versioning. Users
## Step 3: Add a destination
In Reverse ETL, destinations are the business tools or apps you use that Segment syncs the data from your warehouse to. A model can have multiple destinations.
-Refer to the [Reverse ETL catalog](/docs/connections/reverse-etl/reverse-etl-catalog/) to view the supported actions destinations. Reverse ETL supports to unique destinations:
-- **[Segment Connections Destination](/docs/connections/reverse-etl/reverse-etl-catalog/#segment-connections-destination)**: Send warehouse data back into Segment to leverage your existing mappings or access non-actions destinations in the Connections catalog.
-- **[Segment Profiles Destination](/docs/connections/destinations/catalog/actions-segment-profiles/)**: Engage Premier Subscriptions users can use Reverse ETL to sync subscription data from their warehouses to destinations.
+Reverse ETL supports the destinations 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 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.
@@ -110,6 +110,88 @@ To edit your model:
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.
+### 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 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.
+
+Example:
+
+```json
+ {
+ "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:
+
+```json
+ [
+ {
+ "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.
+
+### Null value management
+You can choose to exclude null values from optional mapping fields in your syncs to some destinations. Excluding null values helps you maintain data integrity in your downstream destinations, as syncing a null value for an optional field may overwrite an existing value in your downstream tool.
+
+For example, if you opt to sync null values with your destination and an end user fills out a form but chooses to leave an optional telephone number field blank, the existing telephone number you have on file in your destination could be overwritten with the null value. By opting out of null values for your downstream destination, you would preserve the existing telephone number in your destination.
+
+By default, Segment syncs null values from mapped fields to your downstream destinations. Some destinations do not allow the syncing of null values, and will reject requests that contain them. Segment disables the option to opt out of syncing null values for these destinations.
+
+To opt out of including null values in your downstream syncs:
+1. Navigate to Connections > Destinations and select the Reverse ETL tab.
+2. Select the destination and the mapping you want to edit.
+3. Click Edit mapping.
+4. Under **Optional fields**, select the field you want to edit.
+5. In the field dropdown selection, disable the **Sync null values** toggle.
+
+
### Edit your mapping
To edit your mapping:
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index faf35fbe0c..0dba30f9d0 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -48,8 +48,12 @@ The extract phase is the time spent connecting to your database, executing the m
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
+Record count | The maximum number of records a single sync will process. If a sync would contain more than 150 million records, Segment separates the data into multiple syncs, each containing no more than 150 million records
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). | *150 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
+
+*: _If Segment identifies a sync would be larger than 150 million records, Segment extracts 150 million of the records in the initial sync and syncs any additional records during the next scheduled or manual sync._
+
+_For example, if a sync would contain 700 million records, Segment would run an initial 150 million record sync, and during the next three scheduled or manual syncs, would sync 150 million records. The fifth scheduled or manual sync would contain the remaining 100 million records._
\ No newline at end of file