From e2275fc4f0506f73486a7ddba502acc2fd7e6115 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Tue, 20 May 2025 12:41:09 -0400 Subject: [PATCH 01/18] fix part 1 --- src/_includes/content/destination-dossier.html | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/_includes/content/destination-dossier.html b/src/_includes/content/destination-dossier.html index f437f81bcf..f25787e7e0 100644 --- a/src/_includes/content/destination-dossier.html +++ b/src/_includes/content/destination-dossier.html @@ -59,6 +59,9 @@
Destination Info
  • This destination is not compatible with Destination Insert Functions.
  • {% endunless %} {% endif %} + {% if destinationInfo.partnerOwned == true %} +
  • This integration is partner owned. Please reach out to the partner's support for any issues.
  • + {% endif %} {% if thisDestination == '64c031541451bb784943f809' or thisDestination == '63e42d44b0a59908dc4cacc6' or thisDestination == '642440d46b66b3eeac42b581' %}
  • This destination is not supported in EU workspaces. For more information, see the Regional Segment documentation.
  • {% endif %} {% if destinationInfo.status == "PUBLIC_BETA" %}
  • This destination is in Beta
  • {% endif %} {% if page.engage == true %}
  • This destination is only compatible with Twilio Engage.
  • {% endif %} @@ -105,13 +108,4 @@
    Connection Modes {% endunless %} {% endif %} -{% if destinationInfo.partnerOwned == true %} -
    -
    Partner Owned
    -
      -
    • This integration is partner owned. Please reach out to the partner's support for any issues.
    • -
    -
    -{% endif %} - {% endif %} \ No newline at end of file From 3c5c01f327dc6106e918286eb6948570a243e998 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 23 May 2025 12:20:09 +0100 Subject: [PATCH 02/18] Redirecting broken link to existing page.md --- .../destinations/catalog/actions-webhook-extensible/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 25e1f96e13..656729251d 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -3,6 +3,7 @@ title: Extensible Webhooks Destination id: 66b1f528d26440823fb27af9 beta: true hidden: true +redirect_from: '/connections/destinations/catalog/extensible-webhook/' --- {% include content/plan-grid.md name="actions" %} From 9f0988d65f80aad63f01916f9b6a382ebaba0425 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 23 May 2025 12:23:53 +0100 Subject: [PATCH 03/18] added whitespace [netlify-build] --- .../destinations/catalog/actions-webhook-extensible/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 656729251d..9b2419de69 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -3,7 +3,7 @@ title: Extensible Webhooks Destination id: 66b1f528d26440823fb27af9 beta: true hidden: true -redirect_from: '/connections/destinations/catalog/extensible-webhook/' +redirect_from: '/connections/destinations/catalog/extensible-webhook/' --- {% include content/plan-grid.md name="actions" %} From 27d58b2ef79175bf0f2b472b96d38535043ebfe7 Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Wed, 28 May 2025 20:49:26 +0530 Subject: [PATCH 04/18] Update tables.md ### What: Adding warning for null ```segment_id``` in Track event tables in cases where ID resolution has failed. ### Why: Request for change in documentation following this issue: [Null segment_ids in tables](https://twilio-engineering.atlassian.net/browse/PS-403). --- src/unify/profiles-sync/tables.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index e7d563b0d0..05c319035c 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -277,6 +277,9 @@ Segment's Identity Resolution has processed these events, which contain a `segme > info "" > To view and select individual track tables, edit your sync settings after you enable Profiles Sync, and wait for the initial sync to complete. +> warning "" +> These tables may have null segment_id in rare cases where ID resolution has failed, which could happen due to multiple reasons. + ## Tables Segment materializes From 66dc7ff0f2d20c4388ddc2dcc08bc5653f8b49bf Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Wed, 28 May 2025 20:52:48 +0530 Subject: [PATCH 05/18] Update tables.md --- src/unify/profiles-sync/tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index 05c319035c..af4ddc392f 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -278,7 +278,7 @@ Segment's Identity Resolution has processed these events, which contain a `segme > To view and select individual track tables, edit your sync settings after you enable Profiles Sync, and wait for the initial sync to complete. > warning "" -> These tables may have null segment_id in rare cases where ID resolution has failed, which could happen due to multiple reasons. +> These tables may have null segment_id in situations where ID resolution has failed, which is a very rare but possible occurrence. From 98ab7bb94a17820985c132012bd55a29aaf578b7 Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Wed, 28 May 2025 20:53:20 +0530 Subject: [PATCH 06/18] Update tables.md --- src/unify/profiles-sync/tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index af4ddc392f..30c6530724 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -278,7 +278,7 @@ Segment's Identity Resolution has processed these events, which contain a `segme > To view and select individual track tables, edit your sync settings after you enable Profiles Sync, and wait for the initial sync to complete. > warning "" -> These tables may have null segment_id in situations where ID resolution has failed, which is a very rare but possible occurrence. +> These tables may have null segment_id in situations where ID resolution has failed, which is a rare but possible occurrence. From 1298f6479bb9d3719962023849d02e05610890f8 Mon Sep 17 00:00:00 2001 From: Charity Holt <38872070+charholt@users.noreply.github.com> Date: Wed, 28 May 2025 11:25:48 -0400 Subject: [PATCH 07/18] Add set-up retl --- src/connections/reverse-etl/setup.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md index c1a7a201ac..0b615b3391 100644 --- a/src/connections/reverse-etl/setup.md +++ b/src/connections/reverse-etl/setup.md @@ -172,6 +172,18 @@ 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. +### Handling Nested Objects and Arrays +Segment's warehouse pipeline flattens nested fields in context, traits, and properties. As part of this process, any nested arrays or objects within these fields are automatically stringified when sent to downstream destinations via Reverse ETL. + +If your destination expects specific fields to be formatted as arrays or objects rather than strings, you'll need to convert the data back to its original structure before mapping. + +For example, in Snowflake, you can use the PARSE_JSON function to convert a stringified object or array back to proper JSON format: +```json +SELECT PARSE_JSON(your_column) AS parsed_data +FROM your_table; +Reverse ETL supports reading data in JSON format and can properly convert it to objects or arrays for mapping. This ensures compatibility with destination schemas that require structured data. +``` + ### 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. From df476e59601ab204c27f34274a54e827856369e3 Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Wed, 28 May 2025 10:01:00 -0700 Subject: [PATCH 08/18] Minor edits --- src/connections/reverse-etl/setup.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md index 0b615b3391..0fdd98bd7c 100644 --- a/src/connections/reverse-etl/setup.md +++ b/src/connections/reverse-etl/setup.md @@ -3,7 +3,7 @@ title: Set up Reverse ETL beta: false --- -There are four components to Reverse ETL: Sources, Models, Destinations, and Mappings. +There are 4 components to Reverse ETL: Sources, Models, Destinations, and Mappings. ![Reverse ETL overview image](images/RETL_Doc_Illustration.png) @@ -172,8 +172,8 @@ 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. -### Handling Nested Objects and Arrays -Segment's warehouse pipeline flattens nested fields in context, traits, and properties. As part of this process, any nested arrays or objects within these fields are automatically stringified when sent to downstream destinations via Reverse ETL. +### Handling nested objects and arrays +Segment's warehouse pipeline flattens nested fields in context, traits, and properties. As part of this process, any nested arrays or objects within these fields are stringified when sent to downstream destinations with Reverse ETL. If your destination expects specific fields to be formatted as arrays or objects rather than strings, you'll need to convert the data back to its original structure before mapping. @@ -192,9 +192,9 @@ For example, if you opt to sync null values with your destination and an end use 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. +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. +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. From 8aecca4a3932769520f1e76e0ffa56b8a887ba48 Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 28 May 2025 23:45:57 -0500 Subject: [PATCH 09/18] extensible webhooks is in public beta --- .../destinations/catalog/actions-webhook-extensible/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 9b2419de69..aa99008ed4 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -12,8 +12,8 @@ Segment's Extensible Webhooks destination lets you send custom data payloads to Segment maintains this destination. For any issues, [contact Segment Support](friends@segment.com). -> info "Private beta" -> Extensible Webhooks is in private beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. +> info "Public beta" +> Extensible Webhooks is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. ## Overview From 9f4ef96ceb5e873ee11dade63548086dbd5e91e6 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 29 May 2025 11:28:58 -0400 Subject: [PATCH 10/18] delete 'em --- .../catalog/actions-ripe-cloud/index.md | 88 ------------------- .../catalog/actions-ripe/index.md | 84 ------------------ 2 files changed, 172 deletions(-) delete mode 100644 src/connections/destinations/catalog/actions-ripe-cloud/index.md delete mode 100644 src/connections/destinations/catalog/actions-ripe/index.md diff --git a/src/connections/destinations/catalog/actions-ripe-cloud/index.md b/src/connections/destinations/catalog/actions-ripe-cloud/index.md deleted file mode 100644 index fa55442e0f..0000000000 --- a/src/connections/destinations/catalog/actions-ripe-cloud/index.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Ripe Cloud Mode (Actions) Destination -hide-boilerplate: true -hide-dossier: true -id: 63cade592992cf7052ce2e3e ---- - -[Ripe](https://www.getripe.com/){:target="_blank"} is a sales conversion tool that enables B2B revenue teams to surface and meet their best leads at the best possible time - when they are using your product. - -The Ripe Segment integration is an [Actions Destination in cloud mode](/docs/connections/destinations/#connection-modes) that lets you send your product events data to Ripe. - -Ripe maintains this destination. For any issues with the destination, [contact the Ripe team](mailto:support@getripe.com). - -> success "" -> Set up a free account with Ripe by visiting their [website](https://www.getripe.com/){:target="_blank"}. - -## Getting Started - -> warning "Ripe Cloud Mode (Actions) destination requires events from an Analytics.js source" -> Ripe Cloud Mode is a way to send your backend events to Ripe and should be used in tandem with the client-side [Ripe Destination](/docs/connections/destinations/catalog/actions-ripe-web/). Without a Ripe Web Mode (Actions) destination receiving information from an Analytics.js source, you will not be able to interact with leads in the Ripe app. - -1. From the Destinations catalog page in the Segment App, click Add Destination. -2. Search for "Ripe Cloud Mode (Actions)" in the Destinations Catalog, and select the "Ripe Cloud Mode (Actions)" destination. -3. Choose which Source should send data to the "Ripe" destination. -4. Go to Ripe integrations page (or onboarding page) and click on the "Segment" integration. -5. Copy the "Segment API key". -6. Enter the "Segment API Key" in the "Ripe Cloud Mode" destination settings in Segment. - -## Supported Methods - -Ripe supports all the following methods out of the box. - - -### Identify - -Take a look at the [Identify method documentation](/docs/connections/spec/identify/) to learn about what it does. An example call would look like this: - -```js -analytics.identify('userId123', { - email: 'steve@apple.com', - firstName: 'Steve', - lastName: 'Jobs' -}); -``` - -Segment sends Identify calls to Ripe as `identify` events. Ripe displays these events as `Users` by default. `Identify` event data is augmented with traits. It's important to include email as a trait, as soon as it is known. Ripe will use email to populate User views by default. Ripe fully supports [Segment's Identify Spec](https://segment.com/docs/connections/spec/identify/#traits), and recommend using the standardized names for the reserved traits covered there. - - -### Track - -Take a look at the [Track method documentation](https://segment.com/docs/connections/spec/track/) to learn about what it does. An example call would look like: - -```js -analytics.track('Clicked Book a Demo Button') -``` - -Segment sends Track calls to Ripe as `track` events. Track events should be flattened whenever possible. For example, rather than `Button Click` as a track event with `Book a Demo` as a property, use `Clicked Book a Demo Button`. Product Events can be filtered and grouped by `userId` or `groupId`. When firing track calls from a backend source you should always include the `userId` to ensure it can be attributed back to the correct user. - - -### Page - -Take a look at the [Page method documentation](https://segment.com/docs/connections/spec/page/) to learn about what it does. An example call would look like this: - -```js -analytics.page() -``` - -Segment sends Page calls to Ripe as a `pageview` event. Ripe displays these events as Page views by default. - - -### Group - -Take a look at the [Group method documentation](https://segment.com/docs/connections/spec/group/) to learn about what it does. An example call would look like this: - -```js -analytics.group("0e8c78ea9d97a7b8185e8632", { - name: "Apple Inc.", - industry: "Technology", - employees: 164000, - plan: "enterprise", - "total billed": 1000000, - website: "apple.com" -}); -``` - -Segment sends Group calls to Ripe as a `group` event. Group events can be augmented with group traits. Ripe displays these events as Workspaces by default. Including a name and a website (domain) as a trait is recommended, as Ripe will use the traits to populate Workspace views by default. - -{% include components/actions-fields.html %} diff --git a/src/connections/destinations/catalog/actions-ripe/index.md b/src/connections/destinations/catalog/actions-ripe/index.md deleted file mode 100644 index b239f9243d..0000000000 --- a/src/connections/destinations/catalog/actions-ripe/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Ripe Device Mode (Actions) Destination -hide-boilerplate: true -hide-dossier: true -id: 63913b2bf906ea939f153851 ---- - -[Ripe](https://www.getripe.com/){:target="_blank"} is a sales conversion tool that enables B2B revenue teams to surface and meet their best leads at the best possible time - when they are using your product. - -The Ripe Segment integration is an [Actions-based Destination in web mode](https://segment.com/docs/connections/destinations/#connection-modes) that lets you send your product events data to Ripe. - -Ripe maintains this destination. For any issues with the destination, [contact the Ripe team](mailto:support@getripe.com). - -> success "" -> Set up a free account with Ripe by visiting their [website](https://www.getripe.com/){:target="_blank"}. - -## Getting Started - -1. From the Destinations catalog page in the Segment App, click Add Destination. -2. Search for "Ripe Device Mode (Actions)" in the Destinations Catalog, and select the "Ripe Device Mode (Actions)" destination. -3. Choose which Source should send data to the "Ripe Device Mode (Actions)" destination. -4. Go to Ripe integrations page (or onboarding) and click on the "Segment" integration. -5. Copy the "Segment API key". -6. Enter the "Segment API Key" in the "Ripe" destination settings in Segment. - -## Supported Methods - -Ripe supports all the following methods out of the box. - -### Identify - -Take a look at the [Identify method documentation](/docs/connections/spec/identify/) to learn about what it does. An example call would look like this: - -```js -analytics.identify('userId123', { - email: 'steve@apple.com', - firstName: 'Steve', - lastName: 'Jobs' -}); -``` - -Segment sends Identify calls to Ripe as `identify` events. Ripe displays these events as `Users` by default. `Identify` event data is augmented with traits. It's important to include email as a trait, as soon as it is known. Ripe will use email to populate User views by default. We fully support the [Segment's Identify Spec](https://segment.com/docs/connections/spec/identify/#traits), and we recommend using the standardized names for the reserved traits covered there. - - -### Track - -Take a look at the [Track method documentation](https://segment.com/docs/connections/spec/track/) to learn about what it does. An example call would look like: - -```js -analytics.track('Clicked Book a Demo Button') -``` - -Segment sends Track calls to Ripe as `track` events. Track events should be flattened whenever possible. For example, rather than `Button Click` as a track event with `Book a Demo` as a property, use `Clicked Book a Demo Button`. Product Events can be filtered and grouped by `userId` or `groupId`. Both of these will be appended automatically if they have been fired prior to the track call for web/client-side events. - - -### Page - -Take a look at the [Page method documentation](https://segment.com/docs/connections/spec/page/) to learn about what it does. An example call would look like this: - -```js -analytics.page() -``` - -Segment sends Page calls to Ripe as a `pageview` event. Ripe displays these events as Page views by default. - - -### Group - -Take a look at the [Group method documentation](https://segment.com/docs/connections/spec/group/) to learn about what it does. An example call would look like this: - -```js -analytics.group("0e8c78ea9d97a7b8185e8632", { - name: "Apple Inc.", - industry: "Technology", - employees: 164000, - plan: "enterprise", - "total billed": 1000000, - website: "apple.com" -}); -``` - -Segment sends Group calls to Ripe as a `group` event. Group events can be augmented with group traits. Ripe displays these events as Workspaces by default. Including a name and a website (domain) as a trait is recommended, as Ripe will use the traits to populate Workspace views by default. - -{% include components/actions-fields.html %} From ab70b0d2a006b78b400181d7229be058e988f324 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 29 May 2025 13:45:59 -0400 Subject: [PATCH 11/18] add note abt adjusted timestamp --- src/connections/spec/common.md | 2 +- src/connections/storage/warehouses/schema.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/spec/common.md b/src/connections/spec/common.md index a70483ef1b..d54017db8c 100644 --- a/src/connections/spec/common.md +++ b/src/connections/spec/common.md @@ -278,7 +278,7 @@ The `sentAt` timestamp specifies the clock time for the client's device when the **Note:** The `sentAt` timestamp is not useful for any analysis since it's tainted by user's clock skew. -> warning "Segment now adds `sentAt` to a payload when the batch is complete and initially tried to the Segment API for the Swift, Kotlin, and C# mobile libraries" +> warning "Segment now adds sentAt to a payload when the batch is complete and initially tried to the Segment API for the Swift, Kotlin, and C# mobile libraries" > This update changes the value of the Segment-calculated `timestamp` to align closer with the `receivedAt` value rather than the `originalTimestamp` value. For most users who are online when events are sent, this does not significantly impact their data. However, if your application utilizes an offline mode where events are queued up for any period of time, the `timestamp` value for those users now more closely reflects when Segment received the events rather than the time they occurred on the users' devices. diff --git a/src/connections/storage/warehouses/schema.md b/src/connections/storage/warehouses/schema.md index 1531d7221d..31cf0630a3 100644 --- a/src/connections/storage/warehouses/schema.md +++ b/src/connections/storage/warehouses/schema.md @@ -450,7 +450,7 @@ All four timestamps pass through to your Warehouse for every ETL'd event. In mos `original_timestamp` is the original timestamp set by the Segment library at the time the event is created. Keep in mind, this timestamp can be affected by device clock skew. You can override this value by manually passing in a value for `timestamp` which will then be relabeled as `original_timestamp`. Generally, this timestamp should be ignored in favor of the `timestamp` column. -`sent_at` is the UTC timestamp set by library when the Segment API call was sent. This timestamp can also be affected by device clock skew. +`sent_at` is the UTC timestamp set by library when the Segment API call was sent. This timestamp can also be affected by device clock skew. Segment adjusts the `sent_at` timestamp when loading events into your data warehouse to better account for batch scenarios where events are queued over a period of time. For more information about how Segment adjusts this timestamp, refer to the [Spec: Common](/docs/connections/spec/common/#sentat) documentation. `received_at` is UTC timestamp set by the Segment API when the API receives the payload from client or server. All tables use `received_at` for the sort key. From 43a057824febbcf62ec88384c104e0cf907e2a95 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 29 May 2025 14:04:56 -0400 Subject: [PATCH 12/18] PM-requested fixes --- src/connections/reverse-etl/faq.md | 12 ++++++---- src/connections/reverse-etl/manage-retl.md | 27 ++++++++++------------ src/monitor/alerts/default-alerts.md | 2 +- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/connections/reverse-etl/faq.md b/src/connections/reverse-etl/faq.md index 0fa219c64f..0c67aa8cca 100644 --- a/src/connections/reverse-etl/faq.md +++ b/src/connections/reverse-etl/faq.md @@ -9,14 +9,16 @@ Get answers to some frequently asked Reverse ETL questions. 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. +Yes, you can sign up for Reverse ETL sync notifications for failed or partially successful syncs. Segment sends notifications for every sync failure. 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**. +1. From your workspace's homepage, navigate to the Monitor tab and select **Alerts**. +2. On the **Default** tab, select **Reverse ETL**. +3. Identify the event you'd like to be alerted for and select the menu icon under the **Actions** tab. +4. Click **Enable alert** and select the notification channels for which you'd like to receive alerts. +5. Click **Save**. -In case of consecutive failures, Segment sends notifications for every sync failure. Segment doesn't send notifications for partial failures. +For more information about Reverse ETL alerting, refer to the [Monitor documentation](/docs/monitor/alerts/default-alerts/#reverse-etl-alerts). ## 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. diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md index dbe3a0022d..f01d0a1977 100644 --- a/src/connections/reverse-etl/manage-retl.md +++ b/src/connections/reverse-etl/manage-retl.md @@ -71,25 +71,22 @@ Once you cancel a sync, the record count under **Extraction Results** reflects t 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 fluctuations in the volume of events successfully delivered to your mapping. +You can opt in to receive email, Slack, and in-app alerts about Reverse ETL sync failures and fluctuations in the volume of events successfully delivered to your mapping. Segment sends notifications for every sync failure, even if the failures happen consecutively. The notification channels that you select for one alert will apply to all alerts in your workspace. ### Failed or partially successful syncs -To subscribe to alerts for a failed or partially successful sync: -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. You can post messages to your channel with either a [webhook](https://api.slack.com/messaging/webhooks){:target="_blank”} or a [workflow](https://slack.com/help/articles/360041352714-Build-a-workflow--Create-a-workflow-that-starts-outside-of-Slack){:target="_blank”}. - - **Enable in-app notifications**: Select this option to see an in-app notification. -5. Click **Create alert**. - -> 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. + +To receive notifications for failed or partially successful syncs: +1. From your workspace's homepage, navigate to the Monitor tab and select **Alerts**. +2. On the **Default** tab, select **Reverse ETL**. +3. Identify the event you'd like to be alerted for and select the menu icon under the **Actions** tab. +4. Click **Enable alert** and select the notification channels for which you'd like to receive alerts. +5. Click **Save**. + +